SpringBoot中创建bean的两种方式:spring.factories 和 @Configuration + @ComponentScan
使用 spring.factories是springboot加载bean的一种方式,通常用于自动装配环境配置相关的类,和其机制和java的SPI机制类似,不同的是其配置规则 : spring.factories以key,value的键值对列表存在。value是类的完全限定类名。类之间用逗号(,)分隔,后面跟着反斜杠(\)和换行符,以提高可读性。
spring.factories
使用 spring.factories是springboot加载bean的一种方式,通常用于自动装配环境配置相关的类,和Configuration注解有异曲同工之妙。
其机制和java的SPI机制类似,不同的是其配置规则 : spring.factories以key,value的键值对列表存在。value是类的完全限定类名。类之间用逗号(,)分隔,后面跟着反斜杠(\)和换行符,以提高可读性。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.AutoConfigurationClass1,\
com.example.AutoConfigurationClass2
@Configuration + @ComponentScan
@Configuration顾名思义就是我们的环境配置,标记SpringBoot中的配置类。其一般与其他Spring的相关配置一起使用。内部的话就是我们需要注入到spring容器的bean。
- 与@Conditiona簇的注解一起使用,用于在标识该类在满足某种规则后下生效。
- 在配置类中我们也可以添加@import注解导入某些类。
二者使用场景:
一般我们的配置类如果在启动类包路径下的话,SpringBoot可以自行装配,无需其他配置去扫描发现。但是如果不是的话,则需要配置 @ComponentScan或者 spring.factories文件了。一般我们开发一个框架的话,推荐使用spring.factories的方式,这样使用者导入相应的jar包(一般是spring-starter包)即可自动装配相应的bean。
参考文章:https://www.jb51.net/program/291916bz8.htm
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)