@Configuration

简介: 被@Configuration标注的类会被Spring容器识别为配置类,作用等同于XML配置文件。通过@Bean注解可注册Bean实例,如示例中将Date对象注入容器。使用AnnotationConfigApplicationContext加载配置类后,容器会管理所有定义的Bean,包括配置类自身,实现基于Java的配置方式。

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

例如:声明一个类,并标注 @Configuration 注解:
@Configuration
public class ConfigurationDemo {
@Bean
public Date currentDate() {
return new Date();
}
}

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

之后使用注解启动方式,初始化一个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

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

相关文章
|
存储 Linux Shell
linux基本功之历史记录history命令实战
linux基本功之历史记录history命令实战
1189 0
linux基本功之历史记录history命令实战
|
9月前
|
IDE Java 编译器
Java基础阶段的常见错误和解决方案
2025年Java实操学习路线(增强版)涵盖环境搭建、Java 21核心特性及基础常见错误解析。系统讲解环境配置、语法、面向对象与异常处理等典型问题,配代码示例与解决方案,助你从入门进阶到高级应用,夯实编程根基。
790 0
|
11月前
|
XML Java Maven
@Bean`注解的使用方法及其作用
本文介绍了Spring框架中`@Bean`注解的使用方法及其作用,包括如何将第三方类库加入Spring容器,配置类与`@Configuration`的配合使用,以及通过`@ConditionalOnClass`、`@ConditionalOnMissingBean`等条件注解控制Bean的加载。同时讲解了Maven父子模块间的依赖关系及配置方式,帮助开发者更好地管理项目结构与依赖注入。
用 Nano Banana Pro 批量生成城市天气视觉卡片
本文介绍如何用Nano Banana Pro批量生成统一风格的城市天气视觉卡片。通过结构化Prompt模版,固定视角、构图与尺寸(1080×1080),结合等距3D卡通风格,将北京、上海等城市的天气信息(晴/阴/雨/夜)转化为直观、稳定的视觉内容,适用于内容平台、城市账号或系统看板,实现高效复用与扩展。
|
9月前
|
存储 监控 算法
117_LLM训练的高效分布式策略:从数据并行到ZeRO优化
在2025年,大型语言模型(LLM)的规模已经达到了数千亿甚至数万亿参数,训练这样的庞然大物需要先进的分布式训练技术支持。本文将深入探讨LLM训练中的高效分布式策略,从基础的数据并行到最先进的ZeRO优化技术,为读者提供全面且实用的技术指南。
873 2
|
运维 数据挖掘 数据处理
Pandas时间数据处理:从基础到进阶的实战指南
Pandas时间数据处理涵盖了从基础到高级的全面功能。其核心由Timestamp、DatetimeIndex、Period和Timedelta四个类构建,支持精准的时间点与区间操作。内容包括时间数据生成(字符串解析与序列生成)、时间索引与切片、高级运算(偏移重采样与窗口计算)、时区处理、周期性数据分析及实战案例(如智能电表数据)。此外,还涉及性能优化技巧和未来展望,帮助用户高效处理时间序列数据并应用于预测分析等场景。
557 1
|
网络协议 安全 API
skynet.dispatch 使用详解
skynet.dispatch 使用详解
646 2
|
JavaScript 前端开发 容器
this、self、window、top 在 JavaScript 中的区别深入研究
在 JavaScript 开发中,`this`、`self`、`window` 和 `top` 是四个常用的概念。`this` 指向当前执行上下文的对象,其值取决于函数调用方式;`self` 在全局作用域中等同于 `window`,常用于 Web Workers;`window` 代表浏览器窗口,是全局变量的容器;`top` 指向最顶层窗口,用于判断是否在框架中。理解这些概念有助于编写健壮的代码。
533 1
this、self、window、top 在 JavaScript 中的区别深入研究
|
人工智能 自然语言处理 安全
魔搭社区每周速递(10.13-10.19)
503个模型、189个数据集、82个创新应用、9篇应用文章
|
Shell iOS开发 MacOS
入职必会-开发环境搭建04-IDEA激活
本方法是市面上最简单、方便的JetBrains全家桶激活方法,包含IDEA、PyCharm、CLion、DataGrip、GoLand、PhpStorm、WebStorm均可激活并且支持最新的2023版本。
719 0
入职必会-开发环境搭建04-IDEA激活

热门文章

最新文章