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? 配置文件详解:自定义属性随机数多环境配置等
SpringBoot配置文件(热部署Properties和YAML自定义属性对象集合)