SpringBoot提倡零配置, 即无xml配置,但是在实际开发中,可能有一些特殊要求必须使用 xml 配置;
这时我们可以通过 Spring 提供的 @ImportResource 来加载 xml 配置文件。
@ImportResource :加载Spring的xml配置文件内容加载到容器中使用;
创建业务类: EmpService
public class EmpService {
public void add(){
System.out.println("add()....");
}
}
创建 resources/spring01.xml 文件,添以下内容
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">
<bean id="empService" class="com.codelee.springboot.service.EmpService">
</bean>
</beans>
将Spring的配置文件加载到容器中, 使用 @ImportResource 标注在一个配置类上,下面是主配置类
/**
* @ImportResource(locations = {"classpath:spring01.xml"})
* 用于导入spring的配置文件,并将它加载到容器中
*/
@ImportResource(locations = {"classpath:spring01.xml"})
@SpringBootApplication
public class SpringBootConfigApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot02ConfigApplication.class, args);
}
}
单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootConfigApplicationTests {
@Autowired
Emp emp;
@Autowired
ApplicationContext context;
@Test
public void testXml() {
EmpService empService = (EmpService) context.getBean("empService");
System.out.println(empService);
empService.add();
}
@Test
public void contextLoads() {
System.out.println(emp);
}
}