@Configuration

简介: `@Configuration` 注解用于标记配置类,相当于传统的 `applicationContext.xml` 配置文件。通过 `@Bean` 可定义托管给 Spring IOC 容器的组件,配合 `AnnotationConfigApplicationContext` 可加载配置并启动容器,实现基于注解的Spring应用配置。

@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


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

相关文章
|
5月前
|
人工智能 弹性计算 安全
阿里云无影云电脑价格:企业版费用、个人版收费及免费无影云电脑申请流程
阿里云无影云电脑提供企业版与个人版,企业版4核8G低至199元/年,支持办公及GPU设计;个人版黄金款14元/月起,最高黑金款149元/月,畅享云游戏与AI开发。另有免费试用1个月可申请。
1860 159
|
4月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过消息展现动态协作。强调时间顺序,可用于建模系统交互、展示并发进程。主要元素包括角色、对象、生命线、控制焦点和各类消息,如同步、异步与返回消息,支持自关联调用,直观呈现系统行为流程。
系统时序图
|
4月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强工具,简化单表CRUD操作,通过继承BaseMapper即可实现增删改查,支持条件构造器、分页插件、代码生成等功能,提升开发效率。
持久层框架MyBatisPlus
|
4月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息等元素,展现系统动态协作过程,突出时间顺序与并发行为,常用于分析和设计软件系统的交互逻辑。(238字)
 系统时序图
|
4月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实践,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,助力微服务架构下配置的集中化、动态化管理。
 Nacos配置中心
|
4月前
|
缓存 Java 数据库连接
1.常见配置
本文介绍了MyBatis的核心配置机制,包括属性加载优先级(方法参数 &gt; resource/url &gt; properties元素)、常见配置项如缓存、延迟加载、执行器类型等,并详解了多环境配置方式及事务管理(JDBC与MANAGED)的使用场景,适用于数据库连接与事务控制的灵活管理。
|
4月前
|
JSON Java API
Feign远程调用
本文介绍如何使用Feign替代RestTemplate实现更优雅的HTTP跨服务调用,解决服务地址硬编码、代码可读性差等问题。通过引入Feign依赖、添加注解、定义客户端接口,实现声明式API调用,并支持自定义日志、连接池优化及配置管理。同时探讨继承与抽取两种最佳实践方式,推荐将Feign客户端抽离为独立模块,提升代码复用性与维护性,助力微服务架构升级。
 Feign远程调用
|
4月前
|
SQL Nacos 数据库
今日练习
本课程作业聚焦微服务核心组件实践,涵盖Nacos配置中心、Feign远程调用及Gateway网关搭建。通过整合配置管理、优化服务通信、实现统一入口控制,提升系统可维护性与架构合理性,并强化代码优化与接口测试能力。
 今日练习
|
4月前
|
SQL 运维 分布式计算
如何做好SQL质量监控
SLS推出用户级SQL质量监控功能,集成于CloudLens for SLS,提供健康分、服务指标、运行明细、SQL Pattern分析及优化建议五大维度,助力用户全面掌握SQL使用情况,提升日志分析效率与治理能力。

热门文章

最新文章