@Configuration 标注的类

简介: 被 @Configuration 标注的类视为配置类,等同于 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月前
|
JSON 安全 Java
SpringBoot鉴权
本文介绍基于Spring Security与JWT实现客户端Token认证的完整方案,涵盖登录鉴权、Token生成与验证、角色权限控制等细节。通过自定义过滤器与认证组件,结合Redis或数据库可扩展实现高效安全的无状态认证体系,适用于Spring Boot微服务架构。
|
存储 人工智能 运维
阿里云 Tair 基于 3FS 工程化落地 KVCache:企业级部署、高可用运维与性能调优实践
阿里云 Tair KVCache 团队联合硬件团队对 3FS 进行深度优化,通过 RDMA 流量均衡、小 I/O 调优及全用户态落盘引擎,提升 4K 随机读 IOPS 150%;增强 GDR 零拷贝、多租户隔离与云原生运维能力,构建高性能、高可用、易管理的 KVCache 存储底座,助力 AI 大模型推理降本增效。
|
2月前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
2713 40
|
2月前
|
索引 存储 数据库
为什么需要使用索引
索引可确保数据唯一性,提升查询速度,减少磁盘IO,优化系统性能。但创建和维护索引耗时耗空间,尤其聚簇索引占用较大存储,且增删改数据时需动态维护索引,降低数据维护效率。
|
2月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用
Thread.Sleep用于让线程暂停执行一段时间,期间不参与CPU竞争。Sleep(1000)不保证精确唤醒时间,受系统调度影响;而Sleep(0)会触发立即重新计算各线程优先级,实现CPU让步,避免界面假死。两者均有实际意义。
|
2月前
|
SQL 存储 NoSQL
简述关系型与非关系型数据库的区别
关系型数据库基于表结构,支持SQL和事务,易于维护但读写性能差、灵活性不足;非关系型数据库格式灵活、速度快、成本低,适用于高并发场景,但缺乏SQL支持与事务机制,复杂查询较弱。
Seata AT模式的执行流程
分布式事务通过Seata实现:发起方开启全局事务,获取XID并注册分支事务;执行本地事务后上报结果;Seata根据各分支状态决定全局提交或回滚,确保数据一致性。
|
2月前
|
设计模式 缓存 Dubbo
zookeeper连接
本文深入解析Dubbo源码中`getRegistry`远程注册核心流程,结合Zookeeper实现服务发现。通过时序图与继承体系图,剖析设计模式应用及注册中心高可用机制,解答四大高频面试题,涵盖多线程、客户端选型等实战要点,助你由浅入深掌握Dubbo架构精髓。(238字)
|
2月前
|
Dubbo Java 应用服务中间件
Feign远程调用
本章介绍如何使用Feign替代RestTemplate实现更优雅的HTTP跨服务调用。通过引入Feign,解决服务地址硬编码、代码可读性差等问题,结合注册中心实现声明式远程调用。内容涵盖Feign基本使用、自定义配置(日志、编码器等)、连接池优化(如Apache HttpClient),并探讨继承与抽取两种最佳实践方案,提升微服务间通信的可维护性与复用性。
|
2月前
|
Java Nacos Maven
Eureka服务注册与发现
本章完成Eureka注册中心搭建及服务注册实践,通过eureka-server、user-service与order-service模块实现服务注册与发现,演示多实例部署配置。虽Eureka已被SpringCloud逐步淘汰,但其核心思想仍具参考价值,后续将用Nacos替代并深入剖析。