无标题

简介: 被@Configuration标注的类会被Spring容器识别为配置类,作用等同于XML配置文件。通过@Bean注解可注册Bean,配合AnnotationConfigApplicationContext可启动IOC容器并加载配置类及其中的Bean实例。

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

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

相关文章
|
2月前
|
NoSQL Linux Shell
2-MongoDB单机部署
本文介绍MongoDB在Windows和Linux系统中的安装启动方法,包括下载、解压、配置数据目录及启动方式(命令行或配置文件)。同时讲解了如何通过Shell连接、使用图形化工具Compass,以及Linux下的部署与防火墙设置,涵盖服务启动、连接测试与安全关闭操作。
|
2月前
|
存储 NoSQL 关系型数据库
1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于数据量大、读写频繁、事务要求不高的场景。广泛应用于社交、游戏、物流、物联网和直播等领域,支持海量存储、水平扩展与高可用,以BSON格式灵活存储复杂数据,提供丰富的查询能力与地理空间索引,显著降低开发运维成本。
|
2月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于暂停线程执行,Sleep(1000)不保证精确唤醒时间,因CPU可能被其他线程占用;Sleep(0)则触发系统立即重新进行CPU调度,让出执行权给其他线程,避免界面假死。二者作用显著不同。
|
2月前
|
Java 大数据
ArrayList扩容机制
ArrayList 添加元素时,先调用 `ensureCapacityInternal` 确保容量充足。首次添加时,最小容量为 1,但会取默认容量 10;当元素数超过当前数组长度时,触发 `grow()` 扩容,新容量为原容量的 1.5 倍。扩容通过位运算 `oldCapacity >> 1` 实现,效率更高。`length` 用于数组,`length()` 用于字符串,`size()` 用于集合。
|
2月前
|
存储 安全 Java
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,仅保留原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List,导致无法通过instanceof判断泛型类型。类型检查在编译期完成,基于引用而非对象本身。擦除后,编译器自动插入强制类型转换以保证类型安全。但这也引发多态冲突、静态成员限制等问题,需通过桥方法等机制解决。
|
2月前
|
NoSQL Java 测试技术
5-MongoDB实战演练
基于SpringDataMongoDB实现头条文章评论功能,涵盖增删改查、按文章ID查询、分页查询子评论及点赞功能。采用MongoDB存储,通过索引优化查询效率,使用MongoTemplate实现高效字段更新。
|
2月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本案例要求将文章评论数据存储至MongoDB的articledb数据库中,涵盖数据库与集合的创建、删除操作,以及文档的增删改查、投影查询、分页排序等功能,全面掌握MongoDB基本CRUD操作及注意事项。
|
2月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本教程介绍如何在Eclipse中配置JDK与Tomcat,导入普通及Maven项目,绑定服务器并运行。涵盖环境搭建、项目部署、常见问题如数据库连接修改等,助你快速启动Java Web项目。(238字)
|
2月前
|
Java
1.常见加载顺序
Java中代码块执行顺序:静态代码块最先执行,仅一次;随后是局部代码块;最后是构造代码块和构造器,每次创建对象时都会执行。示例输出验证了这一顺序。
|
2月前
|
缓存 算法 Java
线程池
本文深入剖析Java线程池实现原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的内部机制,解析任务调度、线程复用、阻塞队列及延迟执行等核心逻辑,并介绍Executors工具类与ThreadLocal相关技术,帮助理解高效并发编程的设计思想。