阅读 392

Spring Boot 配置类的使用(替代 xml 配置)

以前使用 Spring 框架时,会将一些需要的配置放入 xml,但是 SpringBoot 官方不提倡 xml 配置,提倡使用配置类来进行配置。

一、新建一个 Java 类

package com.example.springbootboot02config.service;

/**
 * @author liyanan
 * @date 2019/12/22 20:03
 */
public class DemoService {
    public void add() {
        System.out.println("add() ...");
    }
}

复制代码

二、新建一个配置类,使用 @Configuration 将 Java 类注入 Spring 容器里

package com.example.springbootboot02config.config;

import com.example.springbootboot02config.service.DemoService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author liyanan
 * @date 2019/12/22 22:41
 */
@Configuration
public class DemoServiceConfig {

    @Bean
    public DemoService demoService2() {
        System.out.println("demoService2 组件注入成功");
        return new DemoService();
    }
}

复制代码

方法名相当于 xml 配置文件 bean 标签的 id,方法返回值是对应注入的对象所属的类。

三、单元测试

package com.example.springbootboot02config;

import com.example.springbootboot02config.bean.Demo;
import com.example.springbootboot02config.bean.Emp;
import org.junit.Ignore;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.assertNotNull;

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
class SpringbootBoot02ConfigApplicationTests {
    @Autowired
    ApplicationContext applicationContext;

    @Test
    public void testDemoService2() {
        Object demoService2 = applicationContext.getBean("demoService2");
        assertNotNull(demoService2);
    }

}

复制代码

测试通过,表示已经成功向 Spring 容器注入该组件。

文章分类
后端
文章标签