@Configuration

简介: 被 `@Configuration` 注解的类视为Spring配置类,等同于XML配置文件。通过`@Bean`注解注册Bean,结合`AnnotationConfigApplicationContext`启动容器,可加载并管理所有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


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

相关文章
|
4月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实战应用,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,提升微服务架构下配置的动态管理能力。
|
4月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是微服务的统一解决方案,具备约定大于配置、组件丰富、开箱即用等特点。通过整合Netflix与Alibaba生态,形成完整技术栈,其中Spring Cloud Alibaba因Nacos、Sentinel等优秀组件成为主流选择。
|
4月前
|
敏捷开发 Java 测试技术
为什么要单元测试
本文探讨单元测试在现代软件开发中的核心价值,打破“写单测拖慢进度”的误区,阐述其如何通过提升代码质量、降低维护成本、加速迭代来真正加快研发速度,并结合测试金字塔与反模式分析,倡导开发者重视单元测试,推动软件工程高效演进。
 为什么要单元测试
|
4月前
|
Java Spring
1. 整合Logback,滚动记录+多文件
`logback-spring.xml` 是 Spring Boot 项目的日志配置文件,支持按级别、模块分离输出日志,包含控制台、文件滚动等配置,并可通过 `LogProxy.getLogger()` 获取指定名称的日志实例,实现精准日志管理与追踪。
|
4月前
|
缓存 Java 数据库连接
1.常见配置
本文介绍了MyBatis的核心配置机制,包括属性加载优先级(方法参数 &gt; resource/url &gt; properties元素)、常见配置项如缓存、延迟加载、执行器类型等,并详解了多环境配置方式及事务管理(JDBC与MANAGED)的使用场景,适用于数据库连接与事务控制的灵活管理。
|
4月前
|
Java Maven Spring
3. 打包
本文介绍Java项目打包为可执行JAR文件的两种方式:一是将所有内容打包进单一JAR,通过Maven配置、`mvn clean package`构建,并用`java -jar`运行;二是将JAR、依赖与配置文件分离,提升灵活性。涵盖配置、打包、运行及停止指令(如kill进程),适用于Spring Boot项目部署。
 3. 打包
|
4月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本文介绍了如何在Eclipse中导入并运行Java Web项目,涵盖基础软件安装(Eclipse、JDK、Tomcat)、项目导入步骤、Eclipse与Tomcat的绑定配置及常见问题处理。提供多个SSM/SSH实战项目案例与视频讲解,助你快速搭建开发环境并成功运行项目。
Eclipse运行SSM/SSH项目教程
|
4月前
|
存储 NoSQL 关系型数据库
4-MongoDB索引知识
MongoDB索引基于B树结构,可高效支持查询,避免全集合扫描。包括单字段、复合、地理空间、文本及哈希索引,分别适用于排序、多条件查询、位置搜索、文本检索和分片场景,显著提升查询性能。
|
4月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍如何使用MongoDB存储文章评论数据,涵盖数据库与集合的创建、删除,以及文档的增删改查操作。内容包括:使用`use`创建articledb数据库,通过`insert()`插入评论文档,利用`find()`查询数据并支持投影与排序,结合`limit()`和`skip()`实现分页,以及使用`update()`和`remove()`进行更新与删除操作,全面讲解MongoDB基本CRUD语法及注意事项。
|
4月前
|
缓存 算法 Java
线程池
本文深入剖析了Java线程池的核心原理与实现机制,涵盖ThreadPoolExecutor和ScheduledThreadPoolExecutor的内部结构、任务调度逻辑及Executors工具类的使用。通过源码分析,揭示了线程复用、阻塞队列、周期性任务执行等关键技术细节,并对ThreadLocal与InheritableThreadLocal的实现进行了简要解析,帮助开发者全面理解并发编程中的核心组件。
 线程池

热门文章

最新文章