无标题

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件,配合 `@Bean` 注册 Bean。通过 `AnnotationConfigApplicationContext` 可加载配置类并启动 IOC 容器,管理所有 Bean 实例。

被 @Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。
一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。

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

Java

运行代码复制代码

1

2

3

4

5

6

7

@Configuration

public class ConfigurationDemo {

   @Bean

public Date currentDate() {

return new Date();

}

}


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

XML

复制代码

1

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


之后使用注解启动方式,初始化一个IOC容器,并打印IOC容器中的所有bean的name:

Java

运行代码复制代码

1

2

3

4

5

6

7

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);

}

}


输出结果:

Java

运行代码复制代码

1

2

3

4

5

6

7

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



相关文章
|
3月前
|
JSON Java Shell
Jmeter快速入门
本文介绍JMeter的安装与快速入门使用方法,包括环境依赖、下载解压、启动运行、中文界面设置及基本测试计划创建,涵盖线程组配置、HTTP请求添加、监听器使用等性能测试核心操作步骤。
 Jmeter快速入门
|
API 对象存储
可能是由于API请求的策略已经过期
可能是由于API请求的策略已经过期
422 3
|
存储 机器学习/深度学习 人工智能
大模型时代的存储趋势
从2022年下半年,大模型和AIGC这两个词变得极其火热,而GPU的市场也是一卡难求。对于这种迷乱和火热,让我想起了当年的比特币挖矿和IPFS。似乎世界一年一个新风口,比特币、元宇宙、NFT、AIGC,金钱永不眠,IT炒作永不停歇。 每一个新的风口出现,总有两拨势力在冲突,保守派不断探索业务的真实价值,通过价值投资试图证明这又是一个新的庞氏骗局;另一波则是来势汹汹,集结一切可团结的力量,证明新时代已经来临。对于这一个个的风口,AIGC和大模型似乎与前几年的风口不一样,让我们看到了一丝真正的未来科技,在这篇文章,我会分享我对大模型&AIGC的看法,以及从存储的视角思索,在大模型时代存储的趋势。
|
3月前
|
Kubernetes NoSQL 应用服务中间件
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,帮助开发与运维人员理解分布式系统的部署架构与网络交互。
|
8月前
|
机器学习/深度学习 编解码 人工智能
快手封号怎么申诉才能成功?
快手封号申诉技术解析
|
10月前
|
编解码 人工智能 人机交互
从代码到沉浸感:聊聊V游戏开发那些事儿
从代码到沉浸感:聊聊V游戏开发那些事儿
171 16
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
629 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
存储 Java 数据库
如何处理线程池关闭时未完成的任务?
总之,处理线程池关闭时未完成的任务需要综合考虑多种因素,并根据实际情况选择合适的处理方式。通过合理的处理,可以最大程度地减少任务丢失和数据不一致等问题,确保系统的稳定运行和业务的顺利开展。
643 64
|
机器学习/深度学习 存储 自然语言处理
《神经符号计算:为自然语言处理开启新大门》
神经符号计算融合了神经网络和符号方法的优势,为自然语言处理(NLP)带来新契机。它结合了神经网络强大的特征提取能力和符号推理的逻辑分析能力,提升了语义理解的精准度,特别是在处理隐喻、模糊语言时表现突出。通过将知识图谱与神经网络结合,神经符号计算增强了多步推理能力,并实现了知识图谱的自动化更新。此外,它还提高了模型的可解释性和可信度,有助于突破黑盒限制,增强用户信任。尽管面临一些挑战,但其潜力巨大,有望推动NLP迈向更高智能水平。
478 13
|
传感器 监控 供应链
IoT 和 IIoT 有什么区别
IoT(物联网)是指通过互联网连接各种日常设备,实现数据交换和远程控制的技术。而IIoT(工业物联网)则是专为工业领域设计的IoT,强调在制造业、能源等行业的应用,注重提高生产效率、优化流程和增强安全性。两者主要区别在于应用场景和目标不同。