@Configuration

简介: 被 `@Configuration` 标注的类视为Spring配置类,相当于XML配置文件。结合 `@Bean` 可注册Bean实例,通过 `AnnotationConfigApplicationContext` 加载配置类,启动IOC容器并管理Bean生命周期,配置类本身也会被作为Bean加载。

被 @Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。
一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。
例如:声明一个类,并标注 @Configuration 注解:
Java
运行代码
复制代码
1
2
3
4
5
6
7
@Configuration
public class ConfigurationDemo {
@Bean
public Date currentDate() {
return new Date();
}
}
上述注册Bean的方式类比于xml:
XML
复制代码
1


之后使用注解启动方式,初始化一个IOC容器,并打印IOC容器中的所有bean的name:
Java
运行代码
复制代码
1
2
3
4
5
6
7
public class MainApp {
public static void main(String[] args) throws Exception {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigurationDemo.class);
String[] beanDefinitionNames = ctx.getBeanDefinitionNames();
Stream.of(beanDefinitionNames).forEach(System.out::println);
}
}
输出结果:
Java
运行代码
复制代码
1
2
3
4
5
6
7
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.event.internalEventListenerProcessor
org.springframework.context.event.internalEventListenerFactory
configurationDemo
currentDate
可以发现组件,以及配置类本身被成功加载。

相关文章
|
5月前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的典型场景与根因,涵盖数据库慢查询、连接池配置不当、超时设置缺失等问题,结合真实案例剖析并提出fast-fail、流控、背压等防护策略,助力开发者提升系统稳定性。
|
5月前
|
存储 Java 编译器
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,替换为原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List。类型检查在编译期完成,基于引用而非实际对象。擦除导致反射可绕过泛型限制、无法使用基本类型、instanceof失效等问题,并影响多态实现,需通过桥方法等机制解决。静态成员不能使用类的泛型参数,因其实例化依赖对象创建,而静态上下文无此支持。
|
5月前
|
敏捷开发 Java 测试技术
为什么要单元测试
单元测试看似“踩刹车”,实则让开发跑得更快。它通过快速反馈、精准定位问题、提升代码质量与可维护性,夯实研发效率地基。结合测试金字塔理念,避免“冰激凌筒”等反模式,推动项目持续演进,真正实现高质量高速交付。
|
5月前
|
运维 Devops 开发工具
生产环境缺陷管理
针对大型团队多分支开发中bug协同难、易遗漏等问题,我们基于go-git打造了分布式工具git-poison,实现bug的精准追溯与自动化卡点。通过“投毒-解毒-银针”机制,打通开发、测试、发布与运维环节,有效避免未修复、漏合、漏发等P1级故障,降低沟通成本,提升发布安全性与效率,已在公司内部落地应用超一年,稳定可靠。
|
5月前
|
数据库
各种锁的专题
数据库锁机制简介:包括写锁(排他)、共享锁(读)、排他锁、间隙锁、行锁、表锁及分布式锁,用于控制并发访问,保证数据一致性与完整性。
|
5月前
|
数据库
支付方案专题
本文简要介绍多种锁机制:轻量级、重量级、自旋、偏向锁用于线程同步;乐观与悲观锁处理并发冲突;读、写、共享、排他锁控制资源访问;行锁、表锁、间隙锁管理数据库并发;分布式锁保障跨节点协调,适用于高并发场景。
|
5月前
|
数据库
幂等方案专题
本文简要介绍多种锁机制:轻量级、重量级、自旋、偏向锁用于线程同步;乐观与悲观锁处理并发冲突;读、写、共享、排他锁控制资源访问;行、表、间隙锁管理数据库并发;分布式锁保障分布式系统一致性。
|
5月前
|
安全 Java 测试技术
从Google线上故障,谈灰度发布的重要性
本文介绍配置灰度发布的多种方案,包括基于IP、设备、标签、流量比例、区域及时段等策略,并重点解析Nacos支持的IP和标签灰度能力。通过注册配置中心如Nacos或Apollo,结合标签、命名空间实现安全发布,建议复杂场景在Nacos基础上二次开发扩展。
|
5月前
|
人工智能 Java 关系型数据库
[舍弃,后续需调整][Blog]JPA实现分页需求(☆☆)
掌握SpringBoot、MySQL、Maven及JPA,1小时内借助AI完成博客分页功能改造。在原有项目基础上,实现三层架构分页查询,手动预计4小时。需自行学习JPA,建议增补多页数据验证效果,合理利用AI工具,重在实现,无标准答案。
|
5月前
|
开发者
业务架构图
业务架构图是将现实业务抽象化表达的工具,通过分层、分模块、分功能梳理业务逻辑,明确各部分职责与关系。它既提升客户对业务的理解,也帮助开发者全局掌握系统结构,是连接业务与技术的核心桥梁,具备清晰边界、抽象独立、可迭代优化等特点。

热门文章

最新文章