尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Spring 中的 @Configuration 注解

Spring 中的 @Configuration 注解
📅 发布时间:2026/6/20 0:37:29

 

@Configuration 是 Spring 框架中用于定义配置类的重要注解。它的主要作用是替代传统的 XML 配置文件,通过 Java 代码来定义和管理 Spring 容器中的 Bean。

基本用法

使用 @Configuration 注解标记一个类,表示该类是一个配置类。配置类中可以包含多个被 @Bean 注解的方法,这些方法会被 Spring 容器扫描并注册为 Bean。例如:

@Configuration
public class AppConfig {
   @Bean
   public UserRepository userRepository() {
       return new UserRepository();
   }
   @Bean
   public UserService userService() {
       return new UserService(userRepository());
   }
}

在上述代码中,AppConfig 是一个配置类,定义了两个 Bean:userRepository 和 userService。

高级用法

组件扫描:可以结合 @ComponentScan 注解,自动扫描指定包中的组件。

@Configuration
@ComponentScan(basePackages = "com.example")
  public class AppConfig {
}

导入其他配置类:通过 @Import 注解,可以将多个配置类组合在一起。

@Configuration
@Import(DatabaseConfig.class)
public class AppConfig {
}

@Configuration
public class DatabaseConfig {
  @Bean
  public DataSource dataSource() {
    return new DriverManagerDataSource();
  }
}

条件加载:使用 @Conditional 注解,可以根据条件决定是否加载某个配置类。

@Configuration
@Conditional(CustomCondition.class)
public class AppConfig {
}

实际应用场景

数据源配置:可以通过 @Configuration 配置数据源。

@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");
return dataSource;
}
}

Web 安全配置:在 Spring Security 中,使用 @Configuration 配置安全规则。

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().permitAll();
}
}

注意事项

  1. @Configuration 注解的类不能是 final 类型,也不能是匿名类。

  2. 嵌套的配置类必须是静态类。

  3. @Bean 默认作用域是单例,可以通过 @Scope("prototype") 修改为原型作用域。

总结

@Configuration 是 Spring 框架中用于定义配置类的核心注解,能够替代传统的 XML 配置文件。它支持组件扫描、条件加载、Bean 生命周期管理等功能,广泛应用于数据源配置、Web 安全配置等场景。通过 @Configuration,开发者可以以更直观和灵活的方式管理 Spring 容器中的 Bean。

相关新闻

  • C# 封装、继承、抽象、接口
  • 智能床垫品牌全面选品指南:2025年11月最新TOP5榜单深度解析
  • 基于Qt实现的窗口半透明流动背景

最新新闻

  • 猫抓插件:3步搞定浏览器资源嗅探的终极指南
  • MPC866双核通信处理器架构解析与嵌入式网络设备开发实战
  • 存储型XSS漏洞实战解析:从DVWA靶场到安全防御
  • SRC漏洞挖掘实战:从信息搜集到逻辑漏洞的完整攻防指南
  • 深入解析S12P SCI模块:寄存器操作、IrDA与LIN总线硬件支持
  • 基于等变VAE与扩散模型的MOF材料智能生成与优化实践

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号