@Configuration

简介: 被 `@Configuration` 标注的类视为Spring配置类,相当于XML配置文件。结合 `@Bean` 可注册Bean实例,通过 `AnnotationConfigApplicationContext` 加载配置类,启动IOC容器并管理Bean生命周期,配置类本身也会被作为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


之后使用注解启动方式,初始化一个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
可以发现组件,以及配置类本身被成功加载。

相关文章
|
4月前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的典型场景与根因,涵盖数据库慢查询、连接池配置不当、超时设置缺失等问题,结合真实案例剖析并提出fast-fail、流控、背压等防护策略,助力开发者提升系统稳定性。
|
4月前
|
Java 数据库连接 mybatis
2.映射关系(1-1 1-n n-n)
MyBatis中通过resultMap实现一对一、一对多、多对一及多对多映射。一对一用于属性与字段映射;一对多通过`<collection>`关联主表与子表,如用户拥有多个角色;多对一通过`<association>`关联,如博客属于作者;多对多借助中间类实现,如用户与部门双向关联,均通过嵌套映射完成复杂数据结构封装。
|
4月前
|
存储 安全 小程序
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。其四种模式——授权码、简化、密码和客户端模式,适用于不同场景,广泛用于API授权与单点登录,保障系统间资源共享的安全性与灵活性。
|
4月前
|
安全 前端开发 Java
1.RememberMe简介及用法
RememberMe是一种服务器端机制,通过Cookie实现用户关闭浏览器后仍保持登录状态。用户首次登录并勾选“记住我”后,服务端生成令牌写入Cookie;后续请求自动携带该令牌进行校验,实现免密登录。但令牌泄露可能导致安全风险,可通过持久化Token至数据库并增加二次验证提升安全性。
|
4月前
|
安全 Java 开发工具
1.工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security。内容涵盖项目创建、代码导入、Web依赖引入、接口编写与验证,以及Spring Security的集成与默认登录配置。通过简单步骤实现安全访问控制,附完整代码仓库及分支地址,便于学习参考。(238字)
|
4月前
|
安全 数据安全/隐私保护 微服务
1.什么是权限管理
本文介绍权限管理中的认证与授权两大核心场景,认证确认用户身份,授权分配资源访问权限。通过ACL、RBAC等通用模型,构建安全的系统访问控制体系,保障数据安全与操作合规,是微服务架构中不可或缺的基础模块。
|
4月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,取决于系统调度;Sleep(0)则触发立即重新计算线程优先级,让出CPU给其他线程,常用于避免界面假死。
|
4月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本教程介绍如何在Eclipse中配置Java Web开发环境,涵盖JDK、Tomcat安装与项目导入,支持非Maven及Maven项目。详细演示Eclipse绑定Tomcat服务器、部署项目并启动访问,附带SSH/SSM框架案例与配置讲解视频,助你快速搭建运行环境。(238字)
|
4月前
|
存储 缓存 安全
One Trick Per Day
Map初始化应避免直接指定大小,推荐Guava或手动计算;禁用Executors创建线程池,防止OOM,建议自定义ThreadPoolExecutor;Arrays.asList返回不可变列表,禁止修改操作;遍历Map优先使用entrySet或forEach;SimpleDateFormat非线程安全,建议用ThreadLocal或Java8新时间API;并发更新记录需加锁,推荐乐观锁配合version字段。
|
4月前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,常用于理解分布式系统。它从运维视角出发,揭示应用如何在硬件上部署运行,是开发与运维协同的重要工具。

热门文章

最新文章