@Configuration

简介: `@Configuration` 注解用于标记配置类,相当于 Spring 的 XML 配置文件。被标注的类会被 Spring IOC 容器识别,其中用 `@Bean` 注解的方法将返回对象并注册为 Bean 实例。

@Configuration

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

例如:声明一个类,并标注 @Configuration 注解:

Java

运行代码复制代码

1

2

3

4

5

6

7

@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

运行代码复制代码

1

2

3

4

5

6

7

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


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


相关文章
|
5月前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
5月前
|
JSON 安全 机器人
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息推送。内容涵盖机器人创建、Webhook配置、Postman测试及Java代码实现,并提供限流策略与关键词安全设置等最佳实践,助力实时监控与异常通知。
|
5月前
|
安全 Java 应用服务中间件
4.认识SpringSecurity
Spring Security 是 Spring 生态中的安全框架,提供认证、授权及安全防护功能。支持多种认证方式(如表单、OAuth2、JWT等),基于过滤器链实现请求控制,可防御 CSRF 等攻击,保障 Web 应用安全。
|
5月前
|
XML Java Maven
3. 打包
本文介绍Java项目打包为可执行JAR文件的流程,包括配置文件处理、Maven打包步骤、运行与停止指令。支持前台/后台运行,并提供分离依赖与配置的打包参考方案。
3. 打包
|
5月前
|
XML Java 数据格式
无标题
`@Configuration` 注解用于标记配置类,相当于 XML 配置文件,配合 `@Bean` 注册 Bean。通过 `AnnotationConfigApplicationContext` 可加载配置类并启动 IOC 容器,实现组件管理。
无标题
|
5月前
|
NoSQL Java 测试技术
5-MongoDB实战演练
本课程以某头条文章评论业务为场景,基于MongoDB实战实现评论的增删改查、按文章ID查询、分页加载及点赞功能。采用SpringDataMongoDB与MongoTemplate优化数据操作,提升性能,并结合索引优化查询效率。
 5-MongoDB实战演练
|
5月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍MongoDB常用操作命令,涵盖数据库与集合的创建、查看、删除,以及文档的增删改查、分页、排序和统计查询。以文章评论系统为例,演示数据插入、更新、条件查询及投影、分页显示等核心功能,帮助快速掌握MongoDB基本用法。
3-MongoDB常用命令
|
5月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示系统动态协作过程,强调交互的时间先后关系,直观呈现并发行为。主要元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于软件设计建模。
系统时序图
|
5月前
|
消息中间件 存储 数据挖掘
应用架构图
本文介绍应用架构图的设计原理,涵盖单体与分布式架构模式。重点解析展现层、业务层、数据层及基础通用层的分层设计,阐述系统间调用关系与外部依赖,明确应用边界,指导技术方案落地。
|
5月前
|
XML 存储 SQL
1. 整合Logback,滚动记录+多文件
本文介绍如何整合Logback实现日志的滚动记录与多文件输出,通过配置logback-spring.xml实现不同级别、模块的日志分离存储,并结合代码示例展示实际应用方法,提升项目日志管理效率。

热门文章

最新文章