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

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

相关文章
|
Java 开发者 Spring
Spring Framework 中的 @Autowired 注解:概念与使用方法
【4月更文挑战第20天】在Spring Framework中,@Autowired 注解是实现依赖注入(Dependency Injection, DI)的一种非常强大的工具。通过使用 @Autowired,开发者可以减少代码中的引用绑定,提高模块间的解耦能力
1471 6
|
7月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
5月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
44603 11
|
消息中间件 Java 数据库
解密Spring Boot:深入理解条件装配与条件注解
Spring Boot中的条件装配与条件注解提供了强大的工具,使得应用程序可以根据不同的条件动态装配Bean,从而实现灵活的配置和管理。通过合理使用这些条件注解,开发者可以根据实际需求动态调整应用的行为,提升代码的可维护性和可扩展性。希望本文能够帮助你深入理解Spring Boot中的条件装配与条件注解,在实际开发中更好地应用这些功能。
387 2
|
10月前
|
供应链 监控 API
智能供应链中的电商API:实现库存、订单与物流的自动化管理
本文探讨了智能供应链中电商API的关键作用,涵盖库存、订单与物流的自动化管理。通过实时库存同步、预警补货、多仓库整合,优化库存效率;借助订单自动处理、状态跟踪及修改取消功能,提升订单管理精度;结合物流信息查询、智能路线规划与异常处理,增强物流服务可靠性。以Temu为例,展示其在跨境场景下应用API实现高效供应链管理的实践。未来,随着技术进步,电商API将持续推动供应链向智能化、协同化发展。
|
前端开发 关系型数据库 MySQL
基于python“花开富贵”花园管理系统
感谢大学同学的陪伴与帮助,在我独立编写毕业论文期间,大学同学的鼓励与耐心的帮助使得我少走很多弯路,节省毕业论文的编写时间,也让我有更多精力去完善我开发的系统。 在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。
101 0
|
JavaScript
Vue学习之--------全局事件总线(2022/8/22)
这篇文章介绍了Vue中全局事件总线(GlobalEventBus)的概念和使用方法,它允许不同组件之间进行通信。文章通过图解和代码实例详细解释了如何安装全局事件总线、在组件中接收和提供数据,以及如何在组件销毁前解绑事件,以避免潜在的内存泄漏问题。
Vue学习之--------全局事件总线(2022/8/22)
java 自定义注解以及注解的实现原理
java 自定义注解以及注解的实现原理
270 0
|
存储 IDE 开发工具
STANDARD CMOS SETUP(标准CMOS设定)
标准CMOS设定中包括了DATE和TIME设定,
217 0
|
监控 网络协议 Java
如何在Spring Boot中使用WebSocket
如何在Spring Boot中使用WebSocket
3254 0

热门文章

最新文章