@Configuration

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件。被标注的类会被 Spring IOC 容器识别,其中 `@Bean` 注解的方法可注册 Bean 实例。通过注解方式可替代传统 XML 配置,实现组件的自动加载与管理。

@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


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

相关文章
|
Prometheus 监控 Cloud Native
私有仓库Gitlab的安装与汉化
私有仓库Gitlab的安装与汉化
405 0
|
4月前
|
存储 Java API
Spring Boot使用slf4j进行日志记录
本文介绍了在Spring Boot项目中使用SLF4J结合Logback进行日志管理的方法。通过配置`application.yml`和`logback.xml`,实现日志级别、输出格式、文件存储与滚动策略的灵活控制,并推荐使用SLF4J门面模式替代直接调用具体日志实现,提升系统可维护性与扩展性。
|
消息中间件 存储 安全
SpringBoot与RabbitMQ详解与整合
SpringBoot与RabbitMQ详解与整合
3117 0
|
19天前
|
存储 人工智能 自然语言处理
玩转OpenClaw!基础介绍+功能场景+部署教程详细解读
OpenClaw是一款开源、本地优先的AI智能体执行网关,让大模型从“能说会道”升级为“能干实事”的数字员工。支持文件操作、浏览器自动化、多IM接入与任务编排,兼顾隐私安全与全场景自动化。
865 7
|
23天前
|
人工智能 物联网 机器人
从0到1系统学习大模型:一份接地气的入门指南
本文为大模型入门者量身定制的实战指南:破除“数学/硬件/教材”焦虑,主张“先动手、再补缺”;聚焦Transformer核心原理、Prompt工程、LoRA微调、RAG应用与轻量部署;推荐高效资源与避坑策略,强调以小项目驱动学习,助你少走弯路、快速落地。
600 4
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器按量付费是什么?到底划不划算?
阿里云ECS按量付费是“先用后付、按小时计费”的灵活模式,适合临时扩展、测试、电商抢购等短期或突发场景。开通需账户余额≥100元,不支持备案。相比包年包月更省成本(如仅用几小时),且可随时释放,弹性伸缩便捷。
362 2
|
11月前
|
Kubernetes Linux KVM
利用minikube在单机上构建k8s环境
这就是熊熊在它的小木屋里模拟森林的旅程。它享受到了随时随地使用Kubernetes的愉快,也享受到了大森林带来的各种可能。现在,熊熊不再害怕找食物的问题了,因为它有了 Minikube 这个神奇的掌中宝。
259 26
|
4月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍MongoDB数据库操作,包括创建与删除数据库、集合的显式与隐式创建、文档的增删改查、批量操作、分页查询及排序统计等基本CRUD操作,适用于文章评论数据管理。
|
设计模式 XML SQL
【SpringFramework】面向切面编程-SpringAOP
本文简要记录了Spring AOP相关知识点,及基本的使用方法。
271 14
【SpringFramework】面向切面编程-SpringAOP
|
Java Nacos 数据安全/隐私保护
nacos启动问题之启动时连接报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
5238 96