无标题

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件,可定义 Bean 并由 Spring IOC 容器管理。配合 `@Bean` 注解注册组件,通过 `AnnotationConfigApplicationContext` 启动容器,加载并实例化所有 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


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

相关文章
|
机器学习/深度学习 监控 算法
神经网络训练细节与注意点
转载自良有以也 神经网络训练细节与注意点 本文主要包括以下内容: 梯度检查 合理性(Sanity)检查 检查学习过程 损失函数 训练集与验证集准确率 权重:更新比例 每层的激活数据与梯度分布 可视化 参数更新 一阶(随机梯度下降)方法,动量方法,Nesterov动量方法 学习率退火 二阶方法 逐参数适应学习率方法(Adagrad,RMSProp) 超参数调优 评价 模型集成 总结 拓展引用 梯度检查 理论上将进行梯度检查很简单,就是简单地把解析梯度和数值计算梯度进行比较。
2620 0
|
供应链 算法 前端开发
提升职场竞争力!低代码开发师(高级)认证发布
钉钉宜搭重磅推出“低代码开发师”高级认证,通过高级认证,成为低代码专家!
3808 0
提升职场竞争力!低代码开发师(高级)认证发布
|
缓存 Java PHP
解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题
解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题
|
4月前
|
人工智能 JavaScript 数据可视化
OpenClaw 一键安装包使用指南与环境配置
OpenClaw一键安装包(v2.6.1)专为Windows 10/11设计,全程可视化部署,无需命令行与手动配置,内置Python/Node.js等全部依赖,5分钟快速完成安装。含28万免费Tokens,支持AI自动操控电脑、文件管理、多模型对话等功能。(239字)
|
C++ 芯片 内存技术
STM32速成笔记(一)—概述
本文为STM32速成系列专栏的第一篇文章,主要介绍了一下本专栏的内容特点,前期准备内容以及一些简单的编程规范和代码架构设计内容。
606 0
STM32速成笔记(一)—概述
|
消息中间件 运维 数据管理
Kafka 如何基于 KRaft 实现集群最终一致性协调
Kafka 3.3.1 引入了 KRaft 元数据管理组件,替代 Zookeeper,以简化集群一致性维护,支持更大规模集群并减轻运维复杂性。在 Zookeeper 模式下,需同时运维 ZK 和 Broker,而 KRaft 模式仅需 3 个节点即可构成最小生产集群,且通信协调基于 Raft 协议,增强了一致性。KRaft 模式中,Controller 使用单线程处理请求,通过 KRaft 保持内存状态与多节点一致性。此外,Broker 根据 KRaft 记录更新元数据,实现声明式管理,提高集群协调效率。KRaft 的引入是集群协调机制的演进,采用事件驱动模型实现元数据的一致性。
1255 1
Kafka 如何基于 KRaft 实现集群最终一致性协调
|
机器学习/深度学习 算法 数据挖掘
带你读《深入理解AutoML和AutoDL:构建自动化机器 学习与深度学习平台》之三:机器学习概述
本书从理论与实践的双重维度,对AutoML和AutoDL的入门知识和进阶知识做了全面介绍。
|
机器学习/深度学习 人工智能 算法