Spring JavaConfig实例
从Spring 3起,JavaConfig功能已经包含到Spring核心模块,他允许开发者以另一种方式定义装配Bean,并且仍然允许经典的XML配置文件方式来定义装配Bean ;所以JavaConfig是另一种替代解决方案,来看一下经典的XML定义和JavaConfig的不同,如下定义Spring容器中的Bean:
Spring XML File——applicationContext.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="helloBean" class="com.myprj.hello.impl.HelloWorldImpl">
</beans>
等效于以下JavaConfig配置:
package com.myprj.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.myprj.hello.HelloWorld;
import com.myprj.hello.impl.HelloWorldImpl;
@Configuration
public class AppConfig {
@Bean(name="helloBean")
public HelloWorld helloWorld() {
return new HelloWorldImpl();
}
}
@Import实例
一般来说, 需要按模块或类别分割Spring XML Bean文件成多个小文件, 使事情更容易维护和模块化。 例如,
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<import resource="config/customer.xml"/>
<import resource="config/scheduler.xml"/>
</beans>
它等效于Spring3 JavaConfig @Import 功能:
package com.myprj.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {
}