SpringBoot @Configuration

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件,可定义 Bean 并由 Spring IOC 容器管理。配合 `@Bean` 注解注册组件,通过注解方式启动容器即可加载配置类及其中的 Bean。

@Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。

一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。


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

@Configuration
public class ConfigurationDemo {
    @Bean
    public Date currentDate() {
        return new Date();
    }
}


上述注册Bean的方式类比于xml:


<bean id="currentDate" class="java.util.Date"/>


之后使用注解启动方式,初始化一个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 前端开发
Chap03. SpringAI
SpringAI整合多款主流大模型,支持对话、函数调用与RAG等架构,提供统一API简化开发。通过ChatClient封装交互,结合Prompt工程、工具调用与知识检索,可快速构建智能客服、哄哄模拟器、ChatPDF等应用,并支持多模态与持久化扩展,助力AI应用高效落地。
|
NoSQL MongoDB
12 MongoDB - 数据查询(消除重复)
12 MongoDB - 数据查询(消除重复)
580 0
|
6月前
|
Java API 网络架构
java调用api接口自动判断节假日信息
java调用api接口自动判断节假日信息
2185 0
|
7月前
|
算法 安全 Java
java中Collections.shuffle方法的功能说明
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,常用于洗牌、抽奖等场景。可选 `Random` 参数支持固定种子以实现可重复的随机顺序。方法直接修改原列表,无返回值。
258 0
|
缓存 Nacos 微服务
Nacos2.2.3版本,微服务注册上去了,然后关闭,注册实例还是显示健康,一直在那,要等大概一小时以后才消失
Nacos2.2.3版本,微服务注册上去了,然后关闭,注册实例还是显示健康,一直在那,要等大概一小时以后才消失,怎么解决?
1020 1
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
|
Python 开发工具
第三方支付黑马-CodePay 码支付使用(二)
自古以来有关钱的事情都会特别复杂, 无论是人还是物! 在很多项目中我们都会用到支付功能, 市面上目前存在的银联支付, 支付宝支付, 微 信支付等等第三方支付都会遇到比较复杂的流程, 不是合格的商家公司是没法使用的! 而码支付CodePay打破了这个常规, 虽然作为第三方支付平台, 但是这个平台只提供支付结果订单的结算, 并不对接现金流! 采用的是个人/商家自己的收款码现金是直接到账的形式!
第三方支付黑马-CodePay 码支付使用(二)
|
Java
SpringBoot全局异常@RestControllerAdvice全局异常
SpringBoot全局异常@RestControllerAdvice全局异常
199 0
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。
645 0
|
SpringCloudAlibaba 关系型数据库 MySQL
SpringCloud Alibaba学习(四):Linux版Nacos+MySQL生产环境配置
SpringCloud Alibaba学习(四):Linux版Nacos+MySQL生产环境配置
759 1
SpringCloud Alibaba学习(四):Linux版Nacos+MySQL生产环境配置

热门文章

最新文章