标签:ati cglib ima 定向 的区别 支持 声明 color 文档
之前学习Spring Boot有点囫囵吞枣的意味,没有细究这些注解间的差异。现在空下来重新回过头来阅读官方文档才对这几个注解有了重新的理解,专门写下来好供日后查询翻阅。
指示一个类声明了一个或多个@Bean方法,并且可以由Spring容器进行处理以在运行时为这些bean生成bean定义和服务请求。
@Configuration public class AppConfig { @Bean public FooService fooService() { return new FooService(fooRepository()); } @Bean public FooRepository fooRepository() { return new JdbcFooRepository(dataSource()); } // ... }
FooService调用的FooRepository类型对象和fooRepository()方法所返回生成的对象是同一个。因为在运行时会对@Component进行CGLIB动态代理。
在这个注解中的列也会包含一个或多个@Bean方法。用官网的话来说@Component类中的@Bean方法是lite mode。即不支持bean间引用,以上述代码为例,获得的对象就不再是同一个。
大致上相同,类比的话就是:@Component是一个人,@Service和@Controller拥有一项特长的人
Spring Boot中常用注解@Configuration,@Component,@Service,@Controller的区别
标签:ati cglib ima 定向 的区别 支持 声明 color 文档
原文地址:https://www.cnblogs.com/ryan97/p/13329126.html