SpringBoot提倡零配置, 即无xml配置,但是在实际开发中,可能有一些特殊要求必须使用 xml 配置; 这时我们可以通过 Spring 提供的 @ImportResource 来加载 xml 配置文件
1.创建业务类包和业务类service
package com.cc.springboot01init.service;
public class EmpService {
public void add(){
System.out.println("add()...");
}
}
2.resources文件下创建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.cc.springboot01init.service.EmpService">
</bean>
</beans>
方式:右键-》NEW-》XML Configuration File
3.应用类中导入 controller同级目录文件
关键-》@ImportResource(locations = {"classpath:spring01.xml"})
package com.cc.springboot01init;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
//用于导入spring的配置文件,并将它加载到容器中
@ImportResource(locations = {"classpath:spring01.xml"})
@SpringBootApplication
public class SpringBoot01InitApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot01InitApplication.class, args);
}
}
4.测试应用中测试
package com.cc.springboot01init;
import com.cc.springboot01init.bean.Emp;
import com.cc.springboot01init.service.EmpService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import javax.xml.bind.SchemaOutputResolver;
@SpringBootTest
class SpringBoot01InitApplicationTests {
// 注入
@Autowired
ApplicationContext context;
@Test
void testXml() {
EmpService empService= (EmpService)context.getBean("empService");
System.out.println(empService);
}
}
注意:测试中的导包 import org.springframework.context.ApplicationContext;