无标题

简介: `@Configuration` 注解用于标记配置类,相当于 XML 配置文件。被标注的类会被 Spring IOC 容器识别,其中 `@Bean` 注解的方法可注册 Bean 实例。通过 `AnnotationConfigApplicationContext` 可加载配置类并启动容器,实现组件的自动注册与管理。

@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月前
|
Arthas 监控 Java
下载安装
Arthas 是一款Java诊断工具,使用前需确保服务器已启动Java应用、安装JDK并可访问公网。通过下载 arthas-boot.jar 并启动,可连接目标Java进程进行实时监控与问题排查,支持多进程选择,操作简单高效。
下载安装
|
2月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查Java应用CPU占用过高问题,通过thread、watch、jad等指令定位线程阻塞与异常代码,并实现无需重启的热更新修复,结合profile生成火焰图进行性能分析,提升线上问题处理效率。
记Arthas实现一次CPU排查与代码热更新
|
2月前
|
缓存 算法 Java
线程池
本文深入剖析了Java线程池的核心实现机制。首先介绍线程池的基本概念与优势,通过`Executors`工厂类创建不同类型的线程池,并详细解析了`ThreadPoolExecutor`的运行原理,包括核心参数、任务调度流程及工作线程(Worker)的执行逻辑。接着重点分析了具备周期性调度能力的`ScheduledThreadPoolExecutor`,揭示其如何结合延迟队列(DelayedWorkQueue)和任务重入机制来实现定时与周期性任务调度。文章还探讨了线程池中关键的阻塞队列、拒绝策略等组件,帮助读者全面理解Java并发编程中的线程管理技术。
 线程池
|
2月前
|
存储 缓存 算法
零拷贝
文件传输中,传统方式因频繁的上下文切换和内存拷贝导致性能低下。零拷贝技术通过减少系统调用和内存拷贝,提升传输效率。结合PageCache预读与缓存机制,适用于小文件高并发场景;而大文件则推荐异步IO+直接IO,避免缓存污染,优化整体性能。(239字)
 零拷贝
|
2月前
|
存储 NoSQL 关系型数据库
1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型数据库,适用于高并发读写、海量数据存储及高扩展性需求场景。广泛应用于社交、游戏、物流、物联网等领域,支持灵活的数据模型和丰富查询,是NoSQL中类关系型体验的最佳选择。
|
2月前
|
API 数据库 uml
如何写好一篇技术方案
本项目旨在升级知识库基础能力,优化目录与文档管理的统一性及拖拽交互体验。通过完善的PRD、设计稿、流程图、API与数据库设计,明确需求并提升开发协作效率,助力项目高效推进。
如何写好一篇技术方案
|
2月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息等元素,直观展示系统动态协作过程,强调交互的时间顺序,适用于建模并发行为与方法调用流程。
 系统时序图
|
2月前
|
存储 缓存 安全
One Trick Per Day
初始化Map应避免直接指定大小,建议使用Guava;线程池禁用Executors,防止OOM;Arrays.asList不可修改;遍历Map优先用entrySet;SimpleDateFormat避免static;并发更新记录需加锁,推荐乐观锁。
 One Trick Per Day
|
2月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍了MongoDB数据库的基本操作,包括数据库与集合的创建、删除,文档的增删改查及分页排序查询。以文章评论系统为例,演示了数据存储结构设计、CRUD操作语法及注意事项,适用于初学者快速掌握MongoDB核心功能。
 3-MongoDB常用命令
|
2月前
|
NoSQL Java 测试技术
5-MongoDB实战演练
本文介绍某头条文章评论功能的设计与实现,基于SpringDataMongoDB构建微服务。内容涵盖需求分析、表结构设计、技术选型(mongodb-driver与SpringDataMongoDB),完成评论的增删改查、按文章ID查询、分页查询及点赞功能。通过实体类Comment映射MongoDB文档,使用MongoRepository简化数据操作,并利用MongoTemplate实现高效字段更新,如点赞数递增,提升性能。
 5-MongoDB实战演练