spring boot自定义配置文件数据源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot自定义配置文件数据源相关的知识,希望对你有一定的参考价值。
参考技术A SpringBoot支持动态的读取文件,留下的扩展接口 org.springframework.boot.env.EnvironmentPostProcessor 。这个接口是spring包下的,使用这个进行配置文件的集中管理,而不需要每个项目都去配置配置文件。这种方法也是springboot框架留下的一个扩展(可以自己去扩展)在 /Users/naeshihiroshi/study/studySummarize/SpringBoot/ (自己测试也可以随机在一个目录下建立一文件),目录下建立一个名为 springboot.properties 文件,
springboot.properties 中定义一些配置,配置如下:
定义 MyEnvironmentPostProcessor 实现 EnvironmentPostProcessor 接口
在classpath定义一个 META-INF 文件夹然后在其下面先建 spring.factories 文件,在其中指定:
启动类测试:
打印结果:
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 自定义配置导入XML配置与外部化配置