【转载】【学习】Spring 基于Java的配置
基于Java的配置是用来提供一种选择,可以让开发者不使用XML文件配置。但还是可以通过@ImportResource来导入xml配置。XML配置可以配置Java的config类。
for example:Java配置加载XML配置
@Configuration @Import({ AppConfigOthers.class }) //loads another JavaConfig @ImportResource("classpath:/config/database-config.xml")
public class AppConfigCore { //... }
database-config.xml <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> <property name="url" value="jdbc:hsqldb:mem:dataSource" /> <property name="username" value="sa" /> <property name="password" value="" /> </bean>
for example: XML加载Java配置
<context:component-scan base-package="com.mkyong.form.config" />
package com.mkyong.form.config;
@EnableWebMvc
@Configuration
@ComponentScan({ "com.mkyong.form.web", "com.mkyong.form.core" })
public class SpringWebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver =
new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
或者直接用java bean指定定义java config类
基于java的配置使用的核心注解如下:
@Configuration
@Bean(name, autowire, initMethod, destroyMethod)
以下俩个注解用于导入其他包或者XML配置文件中的Bean。
@ComponentScan:扫描特定包下的Bean定义(@Component, @AutoWired等注解定义的Bean)
@Import 其他@Configuration注解的类定义的Bean
@ImportResource XML文件配置的Bean
使用 AnnotationConfigApplicationContext 应用上下文的实现,该实现有一个scan函数可以扫描包,再调用refresh函数就可以加入包中的bean到Spring容器中,另外,可以将java类class对象传入其中,这些类使用@Component等注解注释的类会自动解析为Bean。

浙公网安备 33010602011771号