【转载】【学习】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。

 

posted @ 2016-12-30 15:57  彭玉松  阅读(167)  评论(0)    收藏  举报