@Configuration

简介: 被 `@Configuration` 标注的类视为Spring配置类,相当于XML配置文件,用于定义Bean。通过 `@Bean` 注解注册实例,结合 `AnnotationConfigApplicationContext` 初始化容器,可加载并管理所有Bean,实现基于Java的配置方式。

被 @Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。

一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。

例如:声明一个类,并标注 @Configuration 注解:

@Configuration
public class ConfigurationDemo {
    @Bean
    public Date currentDate() {
        return new Date();
    }
}


上述注册Bean的方式类比于xml:


<bean id="currentDate" class="java.util.Date"/>


之后使用注解启动方式,初始化一个IOC容器,并打印IOC容器中的所有bean的name:


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);
    }
}


输出结果:

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


可以发现组件,以及配置类本身被成功加载。

相关文章
|
JavaScript 前端开发
__proto__和prototype的区别
`prototype`和`__proto__`虽然都与JavaScript的原型继承和对象关系密切相关,但它们的定义、所属对象、作用和功能等方面存在着明显的区别。理解它们之间的区别对于深入掌握JavaScript的面向对象编程和原型链机制非常重要
|
人工智能 运维 安全
|
存储 编译器 程序员
【C语言】auto 关键字详解
`auto` 关键字用于声明局部变量的自动存储类,其作用主要体现在变量的生命周期上。尽管现代C语言中 `auto` 的使用较少,理解其历史背景和作用对于掌握C语言的存储类及变量管理仍然很重要。局部变量默认即为 `auto` 类型,因此在实际编程中,通常不需要显式声明 `auto`。了解 `auto` 关键字有助于更好地理解C语言的存储类及其在不同场景中的应用。
1094 1
|
存储 安全 固态存储
c盘满了怎么办
c盘满了怎么办
|
SQL 存储 缓存
日志服务 SQL 引擎全新升级
SQL 作为 SLS 基础功能,每天承载了用户大量日志数据的分析请求,既有小数据量的快速查询(如告警、即席查询等);也有上万亿数据规模的报表级分析。SLS 作为 Serverless 服务,除了要满足不同用户的各类需求,还要兼顾性能、隔离性、稳定性等要求。过去一年多的时间,SLS SQL 团队做了大量的工作,对 SQL 引擎进行了全新升级,SQL 的执行性能、隔离性等方面都有了大幅的提升。
948 125
|
机器学习/深度学习 编解码 资源调度
正交时频空间调制:离散Zak变换方法——论文阅读笔记
本文提出基于离散Zak变换(DZT)的正交时频空间(OTFS)调制新方法,通过DZT统一构建OTFS收发框架,揭示其在时延-多普勒域的输入输出关系,简化系统分析并深化对分辨率与脉冲设计的理解,为高移动性通信提供高效解决方案。
795 0
|
XML Java 数据库连接
三、MyBatis核心配置文件详解
三、MyBatis核心配置文件详解
531 15
|
数据采集 自然语言处理 数据处理
智源研究院发布中文高质量数据集CCI3.0-HQ技术报告
智源研究院发布了CCI3.0-HQ中文预训练数据集,采用先进的混合质量过滤方法,显著提升数据完整性和性能。该数据集在多项实验中表现优异,超越了其他主流中文语料库。同时,智源还推出了CCI3-HQ分类器,大幅改进了大语言模型训练中的数据选择流程。
1119 12
智源研究院发布中文高质量数据集CCI3.0-HQ技术报告
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
693 15
|
机器学习/深度学习 人工智能 编译器
BladeDISC++:Dynamic Shape AI 编译器下的显存优化技术
本文介绍了阿里云 PAI 团队近期发布的 BladeDISC++项目,探讨在动态场景下如何优化深度学习训练任务的显存峰值,主要内容包括以下三个部分:Dynamic Shape 场景下显存优化的背景与挑战;BladeDISC++的创新解决方案;Llama2 模型的实验数据分析