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
相关产品推荐
相关产品推荐

