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);
    }

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐