2022.5.20
在主启动类上使用 @ImportResource 注解可以导入一个或多个 Spring 配置文件,并使其中的内容生效。
1. 以 helloworld 为例,在 net.biancheng.www.service 包下创建一个名为 PersonService 的接口,代码如下。
- package net.biancheng.www.service;
- import net.biancheng.www.bean.Person;
- public interface PersonService {
- public Person getPersonInfo();
- }
2. 在 net.biancheng.www.service.impl 包下创建一个名为 PersonServiceImpl 的类,并实现 PersonService 接口,代码如下。
- package net.biancheng.www.service.impl;
- import net.biancheng.www.bean.Person;
- import net.biancheng.www.service.PersonService;
- import org.springframework.beans.factory.annotation.Autowired;
- public class PersonServiceImpl implements PersonService {
- @Autowired
- private Person person;
- @Override
- public Person getPersonInfo() {
- return person;
- }
- }
3. 在该项目的 resources 下添加一个名为 beans.xml 的 Spring 配置文件,配置代码如下。
- <?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="personService" class="net.biancheng.www.service.impl.PersonServiceImpl"></bean>
- </beans>
4. 修改该项目的单元测试类 HelloworldApplicationTests ,校验 IOC 容器是否已经 personService,代码如下。
- package net.biancheng.www;
- import net.biancheng.www.bean.Person;
- 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;
- @SpringBootTest
- class HelloworldApplicationTests {
- @Autowired
- Person person;
- //IOC 容器
- @Autowired
- ApplicationContext ioc;
- @Test
- public void testHelloService() {
- //校验 IOC 容器中是否包含组件 personService
- boolean b = ioc.containsBean("personService");
- if (b) {
- System.out.println("personService 已经添加到 IOC 容器中");
- } else {
- System.out.println("personService 没添加到 IOC 容器中");
- }
- }
- @Test
- void contextLoads() {
- System.out.println(person);
- }
- }