@Component与@Configuration区别
@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区别相关推荐
- @Component和@Configuration作为配置类的差别
随着spingboot的大火,注解式配置受到了大家的热烈欢迎,而@Component和@Configuration都可以作为配置类,之前一直都没觉得这两个用起来有什么差别,可能有时程序跑的和自己想的有 ...
- CRM WebClient UI里标准configuration和custom configuration区别
猜想: q system上创建的configuration 一定是customer configuration. 下面是我证实这个猜想的思路: 在QDD上找一个已经有customer configur ...
- 软件框架SpringBoot-实现使用@Component@Data@Configuration@Bean(配置类控制类实体类)等方法实现将配置文件从8080端口显示在网页上
一.前言 1.该程序代码是使用idea2021.12版本编写的,若使用其他软件请对照好配置: 2.这个程序具体的内容我忘了,只知道使用@Component@ConfigurationPropertie ...
- Spring中的注解@Service @Component @Controller @Repository区别
@Service用于标注业务层组件, @Controller用于标注控制层组件(如struts中的action), @Repository用于标注数据访问组件,即DAO组件, @Component泛指 ...
- @bean注解和@component注解的区别_通过源码查看 @Component,@Service 等注解是如何被解析的...
点击上方"匠心零度",选择"设为星标" 做积极的人,而不是积极废人 来源:my.oschina.net/floor/blog/4325651 前言 1.@Com ...
- 蓝牙协议栈测试,蓝牙协议栈认证:蓝牙BQB认证中End Product/Subsystem和Component的认证区别
Part.1 蓝牙BQB认证类型的选择是认证过程中必须要做的事情,以下些信息有助于理解如何来选择蓝牙BQB认证类型: (1)若贵公司认证的蓝牙设计将会被其他会员公司使用到其产品中,蓝牙BQB认证资格认 ...
- @bean注解和@component注解的区别_阿里面试题一:spring里面使用xml配置和注解配置区别...
阿里是众多程序员梦寐以求的地方,今天我们分享阿里的一个真实面试题,看似简单,回答起来确实没有头绪?下面我们分几点给大家说下答案. 适用场景 Xml配置场景: 1.Bean实现类来源于第三方类库,如Da ...
- @Bean+@Component+@Configuration+@Autowired的配合使用与区别(转载+整理+完整实验)
大概是这么几种用法: 组合使用 示例代码 代理 @Configuration+@bean 所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例. @Component+@b ...
- Spring:@Configuration和@Component的使用与区别
1.美图 2.概述 spring常用注解 @Component 大家都不陌生,用来注解一些公共的服务类. 但是Spring boot 中的注解 @Configuration 有什么用呢?两者有什么区别 ...
最新文章
- 「微服务系列 13」熔断限流隔离降级
- 使用Docker打包发布Django应用
- 时光已荏苒,我还怎么让你遇见最美年华里的我
- 小孩都看得懂的推荐系统
- 如何避免JS内存泄漏?
- SRE 是如何保障稳定性的
- COM域名难逃实名监管 CN域名简化流程抢用户
- apache_fileupload实现文件上传_上传多个文件
- 怎么禁止浏览器自动保存密码?
- 互联网基础知识_互联网广告前景怎么样?
- 倒立摆源码 旋转倒立摆 完整全功能 程序 倒立摆 pid算法 程序使用时可根据硬件需要自行调节
- 一个字形容大数据_关于大数据,你应该知道的75个专业术语
- sap设置默认登录语言
- English语法_定语从句 - 小细节
- matlab转化成c语言,matlab转化成c语言的有关问题不会了
- 爬虫chromedriver被识别怎么办?
- 注册域名dns服务器,dns服务器有什么用?如何用贝锐注册域名?
- uo和o的区别和用法_韵母o和uo的区别
- python柱状图zzt_Python torch.diag方法代碼示例
- 2022.1.28 力扣-每日一题-游戏中弱角色的数量
热门文章
- 随机数的产生原理与实现
- TI公司示例下载方式
- 计算机能力挑战2021,2021WER能力挑战赛——“人工智能”竞赛规则.docx
- 炫舞时代显示服务器出错,qq炫舞2各种常见bug大全 FAQ详解
- 什么是架构?怎么进行架构设计
- 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...
- 视频压缩原理之 预测编码
- 怎样用html做学生成绩表,怎样用excel制作学生成绩单
- 【笔记】unity渲染类名词术语概念总结(30个点)
- android保存到本地的图片、视频相册里找不到怎么办?