springboot@Configuration

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件,配合 `@Bean` 注解注册 Bean 到 Spring 容器。通过 `AnnotationConfigApplicationContext` 可加载配置类并启动 IOC 容器,实现组件的自动管理与注入。

@Configuration

被 @Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。例如:声明一个类,并标注 @Configuration 注解:

Java



@Configuration

public class ConfigurationDemo {

   @Bean

public Date currentDate() {

return new Date();

}

}

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

XML


1

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

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

Java

运行代码复制代码

1

2

3

4

5

6

7

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

}

}

输出结果:

Java


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

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

相关文章
|
Ubuntu Python
Ubuntu16.04 安装多个python版本
Ubuntu16.04 安装多个python版本
1710 0
Ubuntu16.04 安装多个python版本
|
JavaScript
vue elementUI select下拉框设置默认值
vue elementUI select下拉框设置默认值
2612 0
|
10月前
|
XML Java 数据格式
SpringBoot@Configuration使用总结
被@Configuration标注的类视为Spring配置类,等同于XML配置文件。通过@Bean注册Bean,结合AnnotationConfigApplicationContext可启动IOC容器,加载并管理Bean实例,包括配置类自身。
|
11月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
61086 11
|
10月前
|
存储 JSON 算法
序列化:对象怎么在网络中传输?
本讲深入讲解RPC框架中的序列化机制,介绍为何需将对象转为二进制进行网络传输,并解析JDK原生、JSON、Hessian等常用序列化方式的原理与优劣,帮助你在不同场景下合理选择,提升系统性能与稳定性。
|
10月前
|
缓存 网络协议 关系型数据库
核心原理:能否画张图解释下 RPC 的通信流程?
RPC(远程过程调用)是一种实现分布式系统间通信的核心技术,它让调用远程服务像调用本地方法一样简单。本文深入浅出地讲解了RPC的定义、作用、通信流程及在微服务架构中的关键地位,帮助开发者理解其底层原理——从序列化、协议设计到动态代理的应用,并揭示RPC如何屏蔽网络复杂性,提升开发效率。通过真实场景对比,展现其在系统拆分、解耦和性能优化中的重要价值,被誉为分布式系统的“经络”。掌握RPC,是迈向高阶开发的必经之路。
|
消息中间件 Java 数据库
解密Spring Boot:深入理解条件装配与条件注解
Spring Boot中的条件装配与条件注解提供了强大的工具,使得应用程序可以根据不同的条件动态装配Bean,从而实现灵活的配置和管理。通过合理使用这些条件注解,开发者可以根据实际需求动态调整应用的行为,提升代码的可维护性和可扩展性。希望本文能够帮助你深入理解Spring Boot中的条件装配与条件注解,在实际开发中更好地应用这些功能。
506 2
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
3627 3
|
供应链 监控 API
智能供应链中的电商API:实现库存、订单与物流的自动化管理
本文探讨了智能供应链中电商API的关键作用,涵盖库存、订单与物流的自动化管理。通过实时库存同步、预警补货、多仓库整合,优化库存效率;借助订单自动处理、状态跟踪及修改取消功能,提升订单管理精度;结合物流信息查询、智能路线规划与异常处理,增强物流服务可靠性。以Temu为例,展示其在跨境场景下应用API实现高效供应链管理的实践。未来,随着技术进步,电商API将持续推动供应链向智能化、协同化发展。
|
Java 调度 数据库
SpringBoot整合XXL-JOB【05】- 任务分片
在实际业务中,批量定时任务可能因上一批任务未完成而影响业务。为解决此问题,本文介绍如何使用Xxl-job对批量任务进行分片处理,通过分片广播形式调度集群机器并行执行任务,大幅提升执行效率。具体步骤包括环境准备、添加依赖和配置、声明实体类与查询类,以及改造业务逻辑实现分片查询。测试结果显示,分片处理将两千条数据的执行时间从30秒缩短至15秒,性能提升显著。
2697 13
SpringBoot整合XXL-JOB【05】-  任务分片

热门文章

最新文章