无标题

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

被 @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

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


相关文章
|
2月前
|
消息中间件 Java 数据安全/隐私保护
RabbitMQ集群部署
本文介绍RabbitMQ集群部署,包括普通模式与高可用方案。首先通过Docker搭建三节点集群,配置Erlang Cookie和rabbitmq.conf实现节点通信;接着演示队列创建、数据共享及宕机测试,发现普通模式无高可用能力;进而引入镜像模式,通过策略设置实现队列多副本,支持主从切换;最后重点介绍3.8版本后推荐的仲裁队列,其具备自动选举、强一致性等优势,配置更简便,是实现高可用的首选方案。
RabbitMQ集群部署
|
Rust 安全 程序员
|
2月前
|
缓存 Java 数据库连接
MyBatis常见配置
本文介绍 MyBatis 核心配置与多环境管理,涵盖属性加载优先级(方法参数 &gt; resource/url &gt; properties 元素)、关键配置项如缓存、延迟加载、执行器类型等,并详解 environments 环境配置及事务管理机制(JDBC 与 MANAGED),适用于多数据源场景。
|
2月前
|
存储 NoSQL 关系型数据库
MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高扩展性及高可用性场景。其基于BSON格式存储,支持嵌入式数据模型、丰富查询、索引优化和分片集群,广泛应用于社交、游戏、物联网等领域,尤其适合数据量大、读写频繁、事务要求不高的应用。
|
2月前
|
NoSQL Java 测试技术
MongoDB实战演练
本文介绍某头条文章评论系统的设计与实现,基于MongoDB和SpringDataMongoDB构建微服务。内容涵盖需求分析、表结构设计、技术选型、实体类编写及增删改查功能开发,并实现按文章ID查询评论、分页查询子评论、评论点赞等功能,重点利用MongoTemplate提升点赞操作效率。
MongoDB实战演练
|
2月前
|
JSON Java 数据格式
SpringBoot使用汇总
本节课主要系统的讲解了 Spring Boot 集成 MyBatis 的过程,分为基于 xml 形式和基于注解的形式来讲解,通过实际配置手把手讲解了 Spring Boot 中 MyBatis 的使用方式,并针对注解方式,讲解了常见的问题已经解决方式,有很强的实战意义。在实际项目中,建议根据实际情况来确定使用哪种方式,一般 xml 和注解都在用。
|
2月前
|
Java 数据库连接 数据库
Mybatis映射关系(1-1 1-n n-n)
本文介绍MyBatis中四种关联映射:一对一(resultMap解决字段与属性映射)、一对多(使用`&lt;collection&gt;`映射集合)、多对一(使用`&lt;association&gt;`关联对象)及多对多(通过中间类结合`&lt;collection&gt;`实现)。适用于处理数据库表间复杂关系,提升数据封装灵活性。
|
2月前
|
NoSQL Linux Shell
MongoDB单机部署
本教程介绍MongoDB在Windows和Linux系统中的安装与启动方法,包括下载、解压、配置文件设置及服务启停操作,同时涵盖Shell连接、图形化工具Compass使用,以及版本选择与常见问题处理。
|
2月前
|
存储 NoSQL 关系型数据库
MongoDB索引知识
MongoDB索引基于B树结构,提升查询效率,避免全集合扫描。支持单字段、复合、地理空间、文本及哈希索引,优化相等匹配、范围查询与排序操作,显著提升大数据量下的查询性能。
|
2月前
|
SQL Java 关系型数据库
Mybatis分页
本文介绍五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、SQL物理分页、数组分页及拦截器分页。对比逻辑分页与物理分页的优劣,指出大数据量下应优先选用物理分页,避免内存溢出,提升系统性能。