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版本
1652 0
Ubuntu16.04 安装多个python版本
|
9月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
58831 11
|
消息中间件 Java 数据库
解密Spring Boot:深入理解条件装配与条件注解
Spring Boot中的条件装配与条件注解提供了强大的工具,使得应用程序可以根据不同的条件动态装配Bean,从而实现灵活的配置和管理。通过合理使用这些条件注解,开发者可以根据实际需求动态调整应用的行为,提升代码的可维护性和可扩展性。希望本文能够帮助你深入理解Spring Boot中的条件装配与条件注解,在实际开发中更好地应用这些功能。
465 2
|
供应链 监控 API
智能供应链中的电商API:实现库存、订单与物流的自动化管理
本文探讨了智能供应链中电商API的关键作用,涵盖库存、订单与物流的自动化管理。通过实时库存同步、预警补货、多仓库整合,优化库存效率;借助订单自动处理、状态跟踪及修改取消功能,提升订单管理精度;结合物流信息查询、智能路线规划与异常处理,增强物流服务可靠性。以Temu为例,展示其在跨境场景下应用API实现高效供应链管理的实践。未来,随着技术进步,电商API将持续推动供应链向智能化、协同化发展。
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
3538 3
|
前端开发 JavaScript Java
如何使用JSR 303 进行后台数据校验?
这篇文章详细介绍了如何使用JSR 303进行后端数据校验,包括JSR 303的基本概念、使用原因、常见操作,以及如何通过注解进行数据校验、分组校验和自定义校验注解的方法和实际应用示例。
如何使用JSR 303 进行后台数据校验?
|
Dubbo Java 应用服务中间件
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
2046 112
|
NoSQL Java Redis
Springboot整合redis(一般人都能看懂的Lettuce版本)
去年学习的Redis,刚刚学习完就迫不及待的在实战中用了一下,走了很多坑不过幸好都填上了,需求的不断变化发现用不上Redis,一开始去掉了,后来想想加进来比较合适。这篇文章主要讲解Springboot如何整合开发Redis实现一个基本的案例。使用的是目前Springboot2.x的Lettuce版本。希望对你有帮助。
1528 1
java 自定义注解以及注解的实现原理
java 自定义注解以及注解的实现原理
372 0
|
监控 网络协议 Java
如何在Spring Boot中使用WebSocket
如何在Spring Boot中使用WebSocket
3547 0