Spring Boot加载自定义配置文件

Posted qq_48838980

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot加载自定义配置文件相关的知识,希望对你有一定的参考价值。

一、使用@PropertySource加载自定义配置文件

1、创建项目文件

在这里插入图片描述

2、添加项目依赖

在这里插入图片描述

3、创建自定义配置文件

在这里插入图片描述

  • 注意:属性值是中文,必须采用unicode,否则会出现乱码问题。
    在这里插入图片描述

4、创建自定义配置类(学生配置类)

在这里插入图片描述

package net.zjs.lesson04.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * 功能:学生配置类
 * 作者:zjs
 * 日期:2021-05-07
 */
@Component//交给spring容器管理
@PropertySource("classpath:myconfig.properties")//加载自定义配置文件
@ConfigurationProperties(prefix = "student")//配置属性,设置前缀
public class StudentConfig {
    private String id;
    private String name;
    private int age;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "StudentConfig{" +
                "id='" + id + '\\'' +
                ", name='" + name + '\\'' +
                ", age=" + age +
                '}';
    }
}

5、编写测试方法

在这里插入图片描述

package net.zjs.lesson04;

import net.zjs.lesson04.config.StudentConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ConfigDemo01ApplicationTests {

    @Autowired//自动注入(装配)学生配置事件
    private StudentConfig studentConfig;

    @Test
    void contextLoads() {
    }
    
    @Test
    public void testStudentConfig(){
        //输出学生配置实体信息
        System.out.println(studentConfig);
    }

}

6、测试方法,查看结果

在这里插入图片描述

7、修改测试方法代码

在这里插入图片描述

8、再次运行测试方法,查看结果

在这里插入图片描述

9、课堂练习

  • 要求:在Web页面显示学生配置信息

(1)创建控制器

在这里插入图片描述

package net.zjs.lesson04.controller;

import net.zjs.lesson04.config.StudentConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 功能:
 * 作者:zjs
 * 日期:2021-05-07
 */
@Controller
@RequestMapping("/zjs")
public class StudentController {

    @Autowired
    StudentConfig studentConfig;

    @ResponseBody
    @RequestMapping("/student")
    public String student(){
        return studentConfig.toString();
    }

}


(2)运行启动类

在这里插入图片描述

(3)访问页面,查看结果

  • http://localhost:8080/zjs/student

在这里插入图片描述

二、使用@ImportResource加载XML配置文件

1、创建项目文件

在这里插入图片描述

2、添加依赖

在这里插入图片描述

3、创建自定义服务类

在这里插入图片描述

package net.zjs.lesson04.service;

import org.springframework.stereotype.Service;

/**
 * 功能:自定义服务类
 * 作者:zjs
 * 日期:2021-05-07
 */
public class CustomService {
    public void welcome(){
        System.out.println("欢迎您访问~");
    }
}

4、创建spring配置文件

在这里插入图片描述

  • 定义一个Bean,指定Bean的名称及类所在的路径
    在这里插入图片描述

5、在启动类上添加注解,加载自定义JavaBean配置文件

在这里插入图片描述

6、编写测试方法

在这里插入图片描述

package net.zjs.lesson04;

import net.zjs.lesson04.service.CustomService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ConfigDemo02ApplicationTests {

    //注入自定义bean
    @Autowired
    private CustomService customService;

    @Test
    void contextLoads() {
    }

    @Test
    public void testCustomService(){
        //调用自定义bean的方法
        customService.welcome();
    }
}


7、运行测试方法,查看结果

在这里插入图片描述

三、使用@Configuration编写自定义配置类

1、创建项目文件

在这里插入图片描述

2、添加项目依赖

在这里插入图片描述

3、编写自定义服务类

在这里插入图片描述

package net.zjs.lesson05.service;

/**
 * 功能:自定义服务类
 * 作者:zjs
 * 日期:2021-05-07
 */
public class CustomService {
    public void welcom(){
        System.out.println("欢迎访问~");
    }
}

4、编写自定义配置类

在这里插入图片描述

package net.zjs.lesson05.config;

import net.zjs.lesson05.service.CustomService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 功能:自定义配置类
 * 作者:zjs
 * 日期:2021-05-07
 */
@Configuration
public class MyConfig {
    @Bean(name = "cs")//不知道Bean名称,默认就是customService
    public CustomService getCustomService(){
        return new CustomService();
    }
}

5、编写测试方法

在这里插入图片描述

package net.zjs.lesson05;

import net.zjs.lesson05.service.CustomService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ConfigDemo03ApplicationTests {
    @Autowired
    private CustomService customService;

    @Test
    void contextLoads() {
        //调用测试方法
        customService.welcom();
    }

}

6、运行测试方法,查看结果

在这里插入图片描述

以上是关于Spring Boot加载自定义配置文件的主要内容,如果未能解决你的问题,请参考以下文章

自定义spring boot start

spring boot自定义配置文件数据源

Spring Boot? 配置文件详解:自定义属性随机数多环境配置等

SpringBoot配置文件(热部署Properties和YAML自定义属性对象集合)

Spring Boot2 系列教程 | yaml 配置文件详解

spring boot可以自定义properties吗