在对 Spring 进行显示配置的时候,有两种可选方案:Java 和 XML。Java 配置是更好的选择,因为它更强大,类型安全且对重构友好。因为它就是 Java 代码,就像程序中的其他 Java 代码一样。
同时,JavaConfig与其他的Java代码又有所区别,尽管它与其他的组件一样都使用相同的语言进行表述,但JavaConfig是 配置代码。这意味着它不应该包含任何业务逻辑,JavaConfig也不应该侵入到业务逻辑代码 之中。
接下来,让我们看一下如何通过JavaConfig显式配置Spring
基本概念:@Configuration 和 @Bean
@Configuration 被用于类上,指明这是一个配置类,该类应该包含在Spring应用上下文中如何创建bean的细节。@Bean 用于方法上,这个方法返回一个被装配的对象,方法体中包含了最终产生bean实例的逻辑。
看一个例子:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
上面的 AppConfig 类将和下面的 XML 配置有一样的效果
<beans>
<bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>
默认情况下,bean 的 ID 与带有 @Bean 注解的方法名是一样的。在本例中,bean的名字将会是 myService。如果你想为其设置成一个不同的名字的话,那么可以重命名该方法,也可以通过 name 属性指定一个不同的名字:
@Bean(name = "hisService")
public