You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java开发者求教:Spring实际项目常用Bean配置方式及版本兼容问题

Spring Bean配置方式:实际项目选型与版本兼容性

主流配置(当前新项目100%用这些)

1. 注解驱动配置(Spring 3.0+,Spring Boot默认)

这是现在所有Spring Boot项目的标配,完全告别XML:

  • 用@Component及其衍生注解(@Service、@Repository、@Controller)标记你的业务类,Spring会自动扫描指定包下的这些类并创建Bean。
  • 用@Configuration + @Bean处理第三方组件或需要自定义初始化逻辑的Bean,比如配置Redis、数据源这类:
@Configuration
public class DataSourceConfig {
    @Bean
    public DataSource dataSource() {
        HikariDataSource ds = new HikariDataSource();
        ds.setJdbcUrl("jdbc:mysql://localhost:3306/db");
        ds.setUsername("root");
        ds.setPassword("123456");
        return ds;
    }
}
  • 依赖注入用@Autowired或者@Resource,配合上面的注解完成Bean的组装。

2. Spring Boot自动配置(Spring Boot 1.0+)

这是Spring Boot最核心的简化点,通过@SpringBootApplication开启后,会根据你引入的starter依赖自动配置对应的Bean。比如引入spring-boot-starter-web,就自动配置Tomcat、DispatcherServlet、Jackson这些Web相关组件,几乎不需要手动写配置。如果要改默认行为,要么用@Configuration+@Bean覆盖,要么在application.yml/application.properties里调整参数。

已淘汰/仅旧项目能用的配置

1. 纯XML配置(Spring 1.x~2.x)

早期Spring完全靠XML定义Bean,比如:

<bean id="orderService" class="com.example.OrderService">
    <property name="orderDao" ref="orderDao"/>
</bean>
<bean id="orderDao" class="com.example.OrderDao"/>

这种方式在Spring 3.0引入注解后就被逐步取代,现在只有维护十年以上的老旧项目才会碰到,新项目绝对不要用。

2. XML+注解混合配置(Spring 2.5~3.x过渡阶段)

比如在XML里加<context:component-scan base-package="com.example"/>开启注解扫描,同时用XML定义部分Bean,这是从XML到注解的过渡方案,现在也完全没必要用。

选型建议

  • 新做Spring Boot项目:就盯着注解驱动+自动配置,只有当需要自定义第三方组件或者特殊初始化逻辑时,才写@Configuration+@Bean。
  • 维护旧Spring项目:如果是Spring 3.0以下,可能要处理XML,但建议逐步往注解方式迁移。
  • 教程里的多种方式是为了讲清楚Spring的演进,但实际工作中只用当前主流的就行,不用纠结旧方式。

内容的提问来源于stack exchange,提问作者Royalrock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:25:10