@Configuration

简介: 被@Configuration标注的类视为Spring配置类,相当于XML配置文件。通过@Bean注册Bean,配合AnnotationConfigApplicationContext可启动IOC容器,加载配置类及其中的Bean组件。

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

例如:声明一个类,并标注 @Configuration 注解:
@Configuration
public class ConfigurationDemo {
@Bean
public Date currentDate() {
return new Date();
}
}

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

之后使用注解启动方式,初始化一个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

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

相关文章
|
26天前
|
负载均衡 Java Nacos
Gateway服务网关
网关是微服务的统一入口,实现请求路由、权限控制与限流。基于Spring Cloud Gateway可快速搭建高性能网关,支持断言与过滤器灵活配置,并解决跨域问题,提升系统安全性和可维护性。
|
26天前
|
安全 Java 开发工具
1.工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security。通过引入web和security依赖,编写简单接口,验证安全框架自动跳转登录页功能,使用默认用户密码登录后访问接口。完整代码见GitHub仓库Day01分支。
|
26天前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep(0)并非无用,它会触发操作系统立即重新进行CPU竞争,让其他线程获得执行机会,避免界面假死。而Sleep(1000)也不保证精确唤醒,因线程调度受优先级和系统负载影响。理解其原理有助于编写更高效的多线程程序。
|
26天前
|
存储 NoSQL Shell
Redis集群部署指南
本章为CentOS7下Redis集群实战教程,涵盖单机安装、主从复制、哨兵高可用及分片集群搭建。通过详细步骤实现多实例部署,掌握Redis集群架构与运维技能。
|
26天前
|
存储 缓存 算法
零拷贝
实现文件传输时,传统方式需频繁系统调用与内存拷贝,导致大量上下文切换和性能损耗。零拷贝技术通过减少用户态与内核态切换、避免重复数据拷贝,显著提升性能。结合PageCache可优化小文件读取,而大文件场景则宜用异步IO+直接IO,避免缓存污染,兼顾效率与并发。
|
26天前
|
消息中间件 存储 监控
Mac系统安装教程
RabbitMQ是基于AMQP协议的开源消息代理,支持异步通信、解耦服务,在分布式与微服务架构中广泛应用。具备高可靠、灵活路由、持久化、可扩展等特性,支持多种消息模式。可通过Homebrew或二进制方式安装,提供Web管理界面,便于操作与监控。(238字)
|
26天前
|
存储 缓存 NoSQL
分布式缓存Redis(高级)
本节深入讲解Redis持久化机制(RDB与AOF)、主从同步、哨兵集群及分片集群搭建,涵盖数据安全、高可用、读写分离与扩容方案,助力实现Redis在生产环境中的稳定落地。
|
26天前
|
关系型数据库 应用服务中间件 Nacos
Nacos配置中心
本章详解Nacos配置中心实战:实现微服务配置统一管理,支持热更新、配置共享与优先级控制,并搭建高可用集群,提升系统稳定性。
|
26天前
|
Java
类加载
Java中代码块执行顺序为:静态代码块 > 局部代码块 > 构造器。静态代码块随类加载执行,仅一次;局部代码块在方法内执行;构造代码块每次创建对象前调用,优先于构造方法执行,且先于main函数运行。
|
26天前
|
关系型数据库 MySQL Java
SpringCloud工程部署启动
本教程介绍SpringCloud微服务工程搭建与部署,涵盖完整项目导入或从零创建父/子模块,配置Maven依赖、数据库连接及业务代码。通过RestTemplate实现order-service调用user-service获取用户信息,演示微服务间远程通信原理,帮助理解服务拆分与调用关系,掌握基础分布式架构实践。