SpringBoot

简介: `@Configuration` 注解用于标记配置类,相当于 Spring 的 XML 配置文件,配合 `@Bean` 注解定义 Bean。通过 `AnnotationConfigApplicationContext` 可加载此类并启动 IOC 容器,实现组件注册与管理。

@Configuration

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

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


相关文章
|
2月前
|
消息中间件 Java 数据安全/隐私保护
RabbitMQ集群部署
本文介绍RabbitMQ集群部署,包括普通模式与高可用方案。首先通过Docker搭建三节点集群,配置Erlang Cookie和rabbitmq.conf实现节点通信;接着演示队列创建、数据共享及宕机测试,发现普通模式无高可用能力;进而引入镜像模式,通过策略设置实现队列多副本,支持主从切换;最后重点介绍3.8版本后推荐的仲裁队列,其具备自动选举、强一致性等优势,配置更简便,是实现高可用的首选方案。
RabbitMQ集群部署
|
2月前
|
存储 缓存 安全
One Trick Per Day
本文总结Java开发中六大关键规范:避免HashMap初始化容量设置不当,禁用Executors创建线程池以防OOM,Arrays.asList不可变操作,优先使用entrySet遍历Map,SimpleDateFormat非线程安全需避免static,以及并发修改记录时合理加锁。遵循这些实践可提升系统稳定性与性能。
One Trick Per Day
|
2月前
|
消息中间件 存储 Java
异步消息组件MQ高级
本文围绕消息中间件(如RabbitMQ)的可靠性机制展开,涵盖生产者重试与确认、消费者确认、消息持久化、失败处理、幂等性及延迟消息等核心内容。重点讲解如何通过重试机制、Confirm/Return确认模式保障消息发送可靠;通过手动或自动ACK确保消费可靠性;并结合定时任务实现失败消息重发,最终构建高可用的消息系统。
异步消息组件MQ高级
|
2月前
|
SQL 运维 监控
如何做好SQL质量监控
git-poison基于go-git实现分布式bug追溯,解决多分支开发中bug漏修、漏发问题。通过“投毒-解毒-银针”机制,自动化卡点发布流程,降低协同成本,提升发布安全性与效率,已在大型团队落地应用。
|
2月前
|
Java 数据库 微服务
微服务服务注册与发现
本课程以黑马商城项目为案例,系统讲解单体架构与微服务架构的优缺点,深入剖析微服务、分布式及云原生架构的核心理念与技术实现。通过搭建项目环境、拆分商品与购物车服务、使用Nacos实现服务注册发现、OpenFeign远程调用等实践,掌握微服务开发全流程。
微服务服务注册与发现
|
2月前
|
消息中间件 Java 数据安全/隐私保护
异步消息组件MQ基础
本课程介绍RabbitMQ在微服务中的应用,涵盖MQ的应用场景、异步调用与同步调用的区别、RabbitMQ的安装与配置、消息收发入门程序、工作队列、发布订阅模型及多种交换机(fanout、Direct、Topic)特性,同时讲解惰性队列、优先级队列、消息堆积处理及商城项目中的实际应用,帮助学员掌握消息中间件的核心技术与实践能力。
异步消息组件MQ基础
|
2月前
|
负载均衡 Java 应用服务中间件
微服务网关与配置中心
本课程学习微服务网关核心功能,包括使用Spring Cloud Gateway实现路由转发、负载均衡及全局过滤器应用。掌握通过Nacos进行服务发现与配置管理,实现统一鉴权、用户身份校验及请求头信息传递,并完成前后端联调与配置热更新等实战操作。
微服务网关与配置中心
|
2月前
|
运维 Devops 开发工具
生产环境缺陷管理
针对大型团队中多分支开发导致的bug管理难题,本文介绍基于go-git实现的通用化工具git-poison。通过“投毒-解毒-银针”机制,实现bug的分布式追溯与自动化卡点,有效避免漏修复、漏发布等问题,降低协同成本,提升发布安全性与效率。
 生产环境缺陷管理
|
2月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强工具,简化单表CRUD操作,通过继承BaseMapper即可实现增删改查。支持条件构造器(如QueryWrapper)、分页插件、代码生成器等功能,提升开发效率,降低SQL冗余,广泛应用于企业级项目中。
 持久层框架MyBatisPlus
|
2月前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布。涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支管理与一键部署,并结合Skywalking等工具实现日志链路追踪与快速排错,提升发布效率与系统稳定性。
 生产环境发布管理