其实一直对@component和@Configuration作用不了解
只是知道@Configuration启动 public static void main(String[] args) {}之后会一直启动,@component用的很少,也不知道在类文件里面用这个注解用什么意思,请问各位是怎么理解,能不能举个例子这两个到底在什么时候用比较好
我查的一下资料如下,但是没太看懂
1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3、@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>)
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
@component
就是实例化你自己的bean,没什么特别的
@Configuration
这个涉及到 spring boot 的自动装载的概念,当你的 bean 不在你 jar 包的扫描目录下时,是没法实例化的给 spring 管理的。
@Configuration 就是用于给你实例化非 jar 中的 bean,但是程序不可能扫描到所有 jar 中的 Configuration 注解,所以就通过
spring.factories
这个配置文件获得 Configuration 类的路径。比如
spring-boot-autoconfigure.jar
这个 jar 中,你就能找到spring.factories
,里面配置了 spring 体系中很多模块的自动配置。