一、Import
开发中我们会遇到一个问题,我们可能会在项目中引入多个Config类,从而会非常麻烦。
实例结构:
@Component
public class RadisTemplate {
}
@Configuration
@ComponentScan
public class RadisConfig {
}
@Component
public class DatasourceTemplate {
}
@ContextConfiguration
@ComponentScan
public class DatasourceConfig {
}
这时有2个Config,我们用一个总的Config类来管理多个Config,其中用了@Import注解
@Configuration
@Import(value = {RadisConfig.class,DatasourceConfig.class })
public class AllConfig {
}
//测试类
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(classes={DatasourceConfig.class,RadisConfig.class})
@ContextConfiguration(classes=AllConfig.class)
public class ImportTest {
@Autowired
DatasourceTemplate datasourceTemplate;
@Autowired
RadisTemplate radisTemplate;
@Test
public void test(){
System.out.println(datasourceTemplate);
System.out.println(radisTemplate);
}
}
二、ImportResorce使用
文件结构:
public class OtherBean {
}
@Getter
@Setter
public class SomeBean {
private OtherBean otherBean;
}
applicationConte.xml中标注OtherBean
在Config类中引入applicationContext.xml文件
@Configuration
@ImportResource(locations="classpath:xmljavaConfig_day06/applicationContext.xml")
public class AppConfig {
@Bean
public SomeBean someBean(OtherBean otherBean){
SomeBean sb=new SomeBean();
sb.setOtherBean(otherBean);
return sb;
}
}
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=AppConfig.class)
public class AppTest {
@Autowired
private SomeBean sb;
@Test
public void test(){
System.out.println(sb.getOtherBean());
}
}