@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

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

相关文章
|
1天前
|
JSON Java 数据格式
SpringBoot使用汇总
本课程系统讲解Spring Boot核心知识,涵盖环境搭建、JSON数据处理、日志记录、属性配置、MVC支持、异常处理等,结合实战案例与源码解析,助力开发者快速掌握微服务开发技能。
|
1天前
|
XML SQL Java
1. 整合Logback,滚动记录+多文件
本文介绍了`logback-spring.xml`的配置与使用,通过定义多个Appender和Logger实现日志分级输出至不同文件,如支付、任务、SQL等;结合`LogProxy.getLogger()`在Java代码中按名称获取指定日志记录器,实现精准日志分类管理,提升系统可维护性。(238字)
|
1天前
|
存储 Java 数据库
2. 整合切面,参数拦截+过滤
基于Spring AOP实现的请求拦截切面,用于记录Web层入参信息。自动捕获请求来源、URL、方式、响应方法及参数,并记录执行耗时,便于调试与日志追踪,支持后续扩展至日志存储或ELK分析。
|
1天前
|
XML Java Maven
3. 打包
本项目通过Maven构建,使用Spring Boot插件将应用打包为可执行JAR,配置`mainClass`并执行`mvn clean package`生成单个JAR文件,支持前台/后台运行(`java -jar`或`nohup`),通过端口查PID并`kill -9`停止服务;也可分离JAR、依赖与配置文件以提升灵活性。
|
1天前
|
JSON Java 数据格式
4. 不定参数入参
本文介绍了Spring Boot中Controller层接口的常见参数接收方式,包括非JSON格式入参(如对象、基本类型、@RequestParam、@RequestBody)和JSON格式入参,涵盖单个/多个参数通过JSONObject接收及封装对象接收的方式,并展示了结合@Valid注解进行参数校验的实践示例。
|
1天前
|
Web App开发 安全 JavaScript
5.跨域处理
本文介绍了跨域问题的产生原因及解决方案。当协议、域名或端口不同时,浏览器因同源策略阻止资源访问。通过CORS(跨域资源共享)机制,使用`@CrossOrigin`注解、全局配置`WebMvcConfigurer`或自定义过滤器添加响应头,可实现安全跨域。
|
1天前
|
JSON 安全 Java
6.鉴权
本文介绍基于Spring Security与JWT实现客户端Token认证方案,涵盖依赖配置、安全设置、JWT生成与验签、自定义认证及过滤器实现,结合RBAC权限控制,保护Spring Boot应用接口安全。
|
1天前
|
存储 缓存 Java
自动装配机制
本文深入解析SpringBoot自动装配机制,从@SpringBootApplication注解入手,剖析其组合注解原理。重点讲解@AutoConfigurationPackage通过@Import实现包扫描路径注册,以及@AutoConfigurationImportSelector如何借助SpringFactoriesLoader加载spring.factories中配置的自动装配类,结合条件注解实现智能化配置,最终实现“约定优于配置”的核心思想。(238字)
|
1天前
|
安全 数据安全/隐私保护
1.什么是权限管理
权限管理包含认证与授权两大核心:认证验证用户身份(如登录),授权则根据角色分配资源访问权限。通过角色叠加生成可访问菜单,实现操作安全控制,避免数据泄露等问题,为系统提供全面安全保障。
|
1天前
|
安全 Java 数据安全/隐私保护
2.通用权限管理模型
本文介绍了ACL、RBAC等常见权限模型。ACL通过用户/角色与权限直接绑定实现控制;RBAC则基于角色继承、职责分离等机制,提升权限管理的灵活性与安全性,适用于复杂系统。了解模型结构有助于构建清晰的权限体系。