SpringBoot#自定义配置的封装

Posted luohaonan

tags:

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

_震惊,开局

 

不可避免的需要弄一些自定义的配置。

 


 

要点:


1. 把配置项都写出来,分析层次关系;
2. 抽象成bean与bean之间的关系,写出bean对应的类,这时候配置项对应了bean的属性,属性可以又默认值
3. 在顶层的bean加上相关注解,即@Configuration,@ConfigurationProperties(prefix = "my-project")
4. 项目中使用配置项目,只需要注入配置类即可。


 

 

 

demo:


//////////////////////////////////////////////////////////
//1.写出所有配置项//////////////////////////////////////
//////////////////////////////////////////////////////////
my-project.name=hello
my-project.url=http://localhost
my-project.db.username=root
my-project.db.password=root
my-project.db.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8


//////////////////////////////////////////////////////////
//2.抽象成bean与bean的关系////////////////////////////
//////////////////////////////////////////////////////////
public class ProjectConfig {
    private String name = "project-default-name";
    private String url = "project-default-url";
    private DbConfig db;

    // getter & setter
}

public class DbConfig {
    private String username="db_default_user";
    private String password="db_default_pwd";
    private String url="jdbc:mysql://localhost:3306/default?serverTimezone=GMT%2B8";
    
    // getter & setter
}

//////////////////////////////////////////////////////////
//3.加上注解/////////////////////////////////////////////
//////////////////////////////////////////////////////////
@Configuration
@ConfigurationProperties(prefix = "my-project")
public class ProjectConfig {
    private String name = "project-default-name";
    private String url = "project-default-url";
    private DbConfig db;
    // getter & setter
}

  


 

 

最后,但是同样重要的:

有时候配置项的值是多个值,通过逗号分隔,如何处理?

 

以上是关于SpringBoot#自定义配置的封装的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

SpringBoot#自定义配置的封装

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段