无标题

简介: 被@Configuration标注的类会被Spring容器识别为配置类,等同于XML配置文件。通过@Bean注解可注册Bean实例,配合AnnotationConfigApplicationContext启动容器,实现基于注解的IoC容器配置,简化开发。

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

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

相关文章
|
小程序
微信小程序wx.createInnerAudioContext播放play报错errMsg: “operateAudio:fail jsapi has no permission, event=ope
微信小程序wx.createInnerAudioContext播放play报错errMsg: “operateAudio:fail jsapi has no permission, event=ope
|
5月前
|
数据采集 运维 物联网
如何利用变革性新技术(如云计算、物联网、低代码)驱动公司创新与转型
剖析企业数字化转型常见误区:盲目跟风、重技术轻业务。提出“认知跃迁—路径选择—落地执行”三步法,强调以业务痛点为起点,按企业类型(中小、制造、科技)匹配低代码、云、IoT、大数据等工具组合,并通过业务、数据、组织三大闭环确保技术真正赋能创新与增长。
|
Java Maven Android开发
Maven神坑之PKIX path building failed终极解决办法
Maven神坑之PKIX path building failed终极解决办法
2710 2
Maven神坑之PKIX path building failed终极解决办法
|
7月前
|
消息中间件 Shell Linux
RabbitMQ部署指南
本文介绍RabbitMQ在CentOS7下基于Docker的单机与集群部署方案,涵盖镜像安装、DelayExchange插件配置、普通模式与镜像模式集群搭建,并详解仲裁队列使用及集群扩容方法,助力实现高可用消息队列服务。
|
7月前
|
关系型数据库 应用服务中间件 Nacos
Nacos配置中心
本章详解Nacos配置中心实战:实现微服务配置统一管理,支持热更新、配置共享与优先级控制,并搭建高可用集群,提升系统稳定性。
|
7月前
|
SQL 容灾 Nacos
Seata的部署和集成
本文介绍Seata分布式事务框架的部署与微服务集成。首先下载并解压Seata Server,修改配置文件application.yml,并在Nacos中配置seataServer.properties及数据库信息。创建seata数据库并运行SQL脚本初始化事务表。启动TC服务后,注册至Nacos。各微服务引入Seata依赖,配置application.yml连接TC。为实现高可用,搭建多节点TC集群,通过Nacos统一管理事务组映射,实现异地容灾与动态切换。微服务从Nacos读取client.properties,灵活绑定TC集群,提升系统稳定性与可维护性。(238字)
|
7月前
|
负载均衡 Java Nacos
Gateway服务网关
网关是微服务的统一入口,实现请求路由、权限控制与限流。基于Spring Cloud Gateway可快速搭建高性能网关,支持断言与过滤器灵活配置,并解决跨域问题,提升系统安全性和可维护性。
|
7月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强框架,简化单表CRUD操作,内置分页、条件构造器、代码生成等功能,支持逻辑删除、枚举处理与JSON字段映射,提升开发效率。
|
7月前
|
存储 SpringCloudAlibaba 负载均衡
Nacos注册中心
本文详细介绍Nacos的安装部署、服务注册中心整合、分级模型、负载均衡策略、权重控制、环境隔离及实例类型,涵盖从入门到实战的核心知识点。通过SpringCloud Alibaba集成,实现微服务注册与发现,并深入解析Nacos在多集群、多环境下的应用实践,助力构建高效稳定的微服务体系。(238字)
|
7月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep(0)并非无用,它会触发操作系统立即重新进行CPU竞争,让其他线程获得执行机会,避免界面假死。而Sleep(1000)也不保证精确唤醒,因线程调度受优先级和系统负载影响。理解其原理有助于编写更高效的多线程程序。