@Component与@Configuration区别

@Configuration本质上还是@Component。

@Configuration标记的类必须符合下面的要求:
1.配置类不能是 final 类、都必须声明为static
2.配置注解通常为了通过 @Bean 注解生成 Spring 容器管理的类,
3.配置类必须是非本地的(即不能在方法中声明,不能是 private)。

Spring 容器在启动时,会加载默认的一些PostPRocessor,其中就有ConfigurationClassPostProcessor,
这个后置处理程序专门处理带有@Configuration注解的类,这个程序会在bean 定义加载完成后,在bean初始化前进行处理

@Configuration
public class AppConfig {//  集群@Value("${redis.sentinel}")private String redisAddress;@Value("${redis.master}")private String master;@Value("${redis.password}")private String password;@Autowiredprivate UserFeignClient userFeignClient;@Beanpublic ThreadPool threadPool() {return new ThreadPool(100);}@Beanpublic BeanChangeUtil beanChangeUtil() {return new BeanChangeUtil(userFeignClient);}@Bean("redissonConfig")public Config getRedisConfig() {Config config = new Config();SentinelServersConfig ssc = config.useSentinelServers().setMasterName(master);Set<String> redisSet = StringUtils.commaDelimitedListToSet(redisAddress);for (String address : redisSet) {ssc.addSentinelAddress(address);ssc.setPassword(AESUtil.AESDecrypt(password,"ECB"));}return config;}
}
@Component
@Order(value = 1)
public class StartService implements ApplicationRunner {@Autowiredprivate PointToPointTask pointToPointTask;@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println("启动日报定时任务:"+new Date());pointToPointTask.start();}}

【重要区别】

@Component:会当做配置类,但不会为其生成CGLIB代理class

@Configuration:会当做配置类,但会为其生成CGLIB代理class

在获取当前类名时,使用@Component获取的是当前类名;而@Configuration获取的是当前类名+唯一标识(CGLIB代理)

@Component与@Configuration区别相关推荐

  1. @Component和@Configuration作为配置类的差别

    随着spingboot的大火,注解式配置受到了大家的热烈欢迎,而@Component和@Configuration都可以作为配置类,之前一直都没觉得这两个用起来有什么差别,可能有时程序跑的和自己想的有 ...

  2. CRM WebClient UI里标准configuration和custom configuration区别

    猜想: q system上创建的configuration 一定是customer configuration. 下面是我证实这个猜想的思路: 在QDD上找一个已经有customer configur ...

  3. 软件框架SpringBoot-实现使用@Component@Data@Configuration@Bean(配置类控制类实体类)等方法实现将配置文件从8080端口显示在网页上

    一.前言 1.该程序代码是使用idea2021.12版本编写的,若使用其他软件请对照好配置: 2.这个程序具体的内容我忘了,只知道使用@Component@ConfigurationPropertie ...

  4. Spring中的注解@Service @Component @Controller @Repository区别

    @Service用于标注业务层组件, @Controller用于标注控制层组件(如struts中的action), @Repository用于标注数据访问组件,即DAO组件, @Component泛指 ...

  5. @bean注解和@component注解的区别_通过源码查看 @Component,@Service 等注解是如何被解析的...

    点击上方"匠心零度",选择"设为星标" 做积极的人,而不是积极废人 来源:my.oschina.net/floor/blog/4325651 前言 1.@Com ...

  6. 蓝牙协议栈测试,蓝牙协议栈认证:蓝牙BQB认证中End Product/Subsystem和Component的认证区别

    Part.1 蓝牙BQB认证类型的选择是认证过程中必须要做的事情,以下些信息有助于理解如何来选择蓝牙BQB认证类型: (1)若贵公司认证的蓝牙设计将会被其他会员公司使用到其产品中,蓝牙BQB认证资格认 ...

  7. @bean注解和@component注解的区别_阿里面试题一:spring里面使用xml配置和注解配置区别...

    阿里是众多程序员梦寐以求的地方,今天我们分享阿里的一个真实面试题,看似简单,回答起来确实没有头绪?下面我们分几点给大家说下答案. 适用场景 Xml配置场景: 1.Bean实现类来源于第三方类库,如Da ...

  8. @Bean+@Component+@Configuration+@Autowired的配合使用与区别(转载+整理+完整实验)

    大概是这么几种用法: 组合使用 示例代码 代理 @Configuration+@bean 所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例. @Component+@b ...

  9. Spring:@Configuration和@Component的使用与区别

    1.美图 2.概述 spring常用注解 @Component 大家都不陌生,用来注解一些公共的服务类. 但是Spring boot 中的注解 @Configuration 有什么用呢?两者有什么区别 ...

最新文章

  1. 「微服务系列 13」熔断限流隔离降级
  2. 使用Docker打包发布Django应用
  3. 时光已荏苒,我还怎么让你遇见最美年华里的我
  4. 小孩都看得懂的推荐系统
  5. 如何避免JS内存泄漏?
  6. SRE 是如何保障稳定性的
  7. COM域名难逃实名监管 CN域名简化流程抢用户
  8. apache_fileupload实现文件上传_上传多个文件
  9. 怎么禁止浏览器自动保存密码?
  10. 互联网基础知识_互联网广告前景怎么样?
  11. 倒立摆源码 旋转倒立摆 完整全功能 程序 倒立摆 pid算法 程序使用时可根据硬件需要自行调节
  12. 一个字形容大数据_关于大数据,你应该知道的75个专业术语
  13. sap设置默认登录语言
  14. English语法_定语从句 - 小细节
  15. matlab转化成c语言,matlab转化成c语言的有关问题不会了
  16. 爬虫chromedriver被识别怎么办?
  17. 注册域名dns服务器,dns服务器有什么用?如何用贝锐注册域名?
  18. uo和o的区别和用法_韵母o和uo的区别
  19. python柱状图zzt_Python torch.diag方法代碼示例
  20. 2022.1.28 力扣-每日一题-游戏中弱角色的数量

热门文章

  1. 随机数的产生原理与实现
  2. TI公司示例下载方式
  3. 计算机能力挑战2021,2021WER能力挑战赛——“人工智能”竞赛规则.docx
  4. 炫舞时代显示服务器出错,qq炫舞2各种常见bug大全 FAQ详解
  5. 什么是架构?怎么进行架构设计
  6. 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...
  7. 视频压缩原理之 预测编码
  8. 怎样用html做学生成绩表,怎样用excel制作学生成绩单
  9. 【笔记】unity渲染类名词术语概念总结(30个点)
  10. android保存到本地的图片、视频相册里找不到怎么办?