当我们自己生成一个springboot项目的jar包的时候,假设我们在另外一个springboot项目里面引用我们生成的jar包,如何在这个项目启动的时候自动注册jar包里面的bean呢?
方式1:
在生成包的时候在META-INF这个文件夹里面生成一个spring.factories文件,在这个文件里面注册我们的config配置类
方式2:
使用@Enable注解的方式
实现过程
方式1:通过spring.factories文件注册
1、构建一个spring项目 autoconfigtest

2、pom引用内容如下
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.2.RELEASE</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
3、编写配置类 TestAutoConfiguration

4、编写spring.factories内容

5、打包 查看生成的包的内容

6、新建一个springboot项目testapp

7、在pom中新增对autoconfigtest包的引用

8、在springboot启动类里面获取name为person的bean,看是否能获取到

9、查看执行结果,可以看到是可以获取到person这个bean的

方式2:通过@Enable注解的方式
1、删除上面autoconfigtest项目中的spring.factories文件
2、编写@Enable注解类 EnableTestAutoConfig

3、打包 查看包内容

4、此时直接执行testapp项目可以看到结果报错

可以看到报错信息提示没有找到name为person的bean
5、修改testapp的启动类,在类上面添加@EnableTestAutoConfig的注解

6、此时再执行一下可以看到获取到了person这个bean

本文介绍两种在Spring Boot项目中自动注册外部jar包内bean的方法:一是通过spring.factories文件进行配置,二是使用@Enable注解的方式。文章详细展示了每种方法的具体实现步骤,并提供了测试验证。
4010

被折叠的 条评论
为什么被折叠?



