http://www.baeldung.com/spring-boot-custom-starter
我已经按照上面链接提供的教程和 github 示例进行了操作,并实现了类似的方式。我正在使用spring-boot-starter-parent :2.0.0.M3
. @componentScan
即使在应用程序的 pom 中包含了我的自定义启动器依赖项之后,如果没有部署它,它也找不到所需的 bean 。
它给出了以下错误。
应用程序无法启动
描述:
com.core.controller.TestController 中的字段 fooApiCaller 需要找不到类型为“service.ApiCaller”的 bean。
行动:
考虑在您的配置中定义一个“service.ApiCaller”类型的 bean。
示例应用程序(一个抛出错误) pom.xml
<dependency>
<groupId>abc.def</groupId>
<artifactId>custom-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
@Controller
public class FooController {
@Autowired
ApiCaller fooApiCaller
}
自定义启动模块 pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>abc.def</groupId>
<artifactId>custom-spring-boot-autoconfigure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>abc.def</groupId>
<artifactId>myapi</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
自动配置模块依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>abc.def</groupId>
<artifactId>myapi</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
</dependencies>
弹簧工厂代码
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
abc.def.myapi.autoconfigure.AutoConfiguration
MyAPI 产品
@Service
@Configuration
public class ApiCaller {
public String getName(String Id){return "name";}
}