@Configuration

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件。其中 `@Bean` 注解的方法返回实例将被 Spring IOC 容器管理。通过注解方式可启动容器并加载 Bean,配置类及其组件会被成功注册并使用。

@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


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

相关文章
|
SpringCloudAlibaba 监控 算法
SpringCloud Alibaba系列(三) Sentinel流控
  流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
432 0
SpringCloud Alibaba系列(三) Sentinel流控
|
12月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
367 13
|
8月前
|
Java Spring
使用 Spring Boot 多个定时任务阻塞问题的解决方案
我是小假 期待与你的下一次相遇 ~
440 5
|
10月前
|
人工智能 自然语言处理 达摩院
通义大模型:中国AI领域的新里程碑
本文介绍了阿里巴巴达摩院研发的“通义大模型”系列,该模型在2025年已成为AI领域的重要里程碑。通义大模型拥有超大规模参数、多模态融合、高效训练框架和中文优化等技术特点,在智能客服、内容创作、教育和企业服务等多个场景实现应用。未来,它将在多模态能力、小样本学习、安全性及应用场景拓展等方面持续突破,推动中国AI技术进步与行业智能化转型。
3383 18
|
IDE Java 应用服务中间件
如何检查并解决类路径中的类库版本冲突问题
类路径中的类库版本冲突可能导致应用运行异常。解决方法包括:1. 使用依赖管理工具(如Maven、Gradle)检查依赖树,找出冲突的库;2. 调整依赖版本或排除特定版本;3. 清理缓存,重新构建项目。
657 2
|
Java 关系型数据库 MySQL
MyBatis模糊查询like的三种方式
MyBatis模糊查询like的三种方式
735 0
|
Java 调度 Spring
是否可以实现动态的@Scheduled(cron = "0 0 0 * * *")
【6月更文挑战第12天】是否可以实现动态的@Scheduled(cron = "0 0 0 * * *")
880 5
|
Prometheus 监控 Cloud Native
如何使用 Prometheus 和 Grafana 监控 Linux 进程?
如何使用 Prometheus 和 Grafana 监控 Linux 进程?
1273 0
如何使用 Prometheus 和 Grafana 监控 Linux 进程?
|
存储 安全 算法
《计算机系统与网络安全》 第六章 密钥管理
《计算机系统与网络安全》 第六章 密钥管理
559 0
《计算机系统与网络安全》 第六章 密钥管理