美文网首页
代码编写时多重覆盖配置文件的方法

代码编写时多重覆盖配置文件的方法

作者: 不二不二熊 | 来源:发表于2019-09-28 22:16 被阅读0次

一、起源

很多时候,当我们在封装自己的框架的时候,一般都是会给使用者预留配置,这个时候配置文件就起作用了。一般而言我们在预留配置文件的时候都是采取三层覆盖的方式,即application配置文件覆盖实体类默认属性,用户配置覆盖application配置文件。

二、展示

  • 第一种:application覆盖类属性
public enum LoginType {
    /**
     * 返回视图
     */
    REDIRECT,
    /**
     * 返回json
     */
    JSON;

    LoginType() {
    }

}
@ConfigurationProperties(prefix = "customer.setting")
@Data
public class SettingProperties {
    /**
     * 默认返回json
     */
    private LoginType loginType = LoginType.JSON;
}
##用户自定义跳转方式
customer.setting.loginType=redirect

如上面所展示的,如果用户没有配置loginType那么默认会使用json方式跳转,如果配置成了redirect那么则会变为视图跳转,这是很常见的。

  • 用户前端输入覆盖掉application配置
    那么,另外还有一种方式,如果当用户在前台传入请求的时候已经带上了参数设置,那么该参数设置则会覆盖掉application配置。
@ConfigurationProperties(prefix = "com.imoc")
@Data
@Configuration
public class UserConfigition {
    private MyUser user;
}
@Data
public class MyUser  {
    /**
     * 用户自定义id
     */
    private int id;
}
##自定义userid
com.imoc.user.id = 15
@RestController
@RequestMapping("/servlet")
public class ParmeatTest {
    @Autowired
    private UserConfigition userConfigition;
    /**
     * <一句话功能描述>:获取传入参数,如果没有的话则使用默认值
     * <功能详细描述>:
     * @Param:
     * @Return: int
     */
    @GetMapping("/parameterTest")
    public int getUesrId(){
        //从RequestContextHolder中获取request
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        //从request中获取参数userId
        int userId = ServletRequestUtils.getIntParameter(request, "userId", userConfigition.getUser().getId());
        return userId;
    }

当我们发起请求(http://localhost:8080/servlet/parameterTest?userId=27)时,如果我们后面不带参数userId,那么返回的就是我们在配置文件时定义的值;如果我们携带了参数userId,那么我们userId的值就将变成27而非15,从而提高了可配置性。

相关文章

  • 代码编写时多重覆盖配置文件的方法

    一、起源 很多时候,当我们在封装自己的框架的时候,一般都是会给使用者预留配置,这个时候配置文件就起作用了。一般而言...

  • 单元测试

    测试驱动编程 先编写测试程序再编写代码 需求说明——测试程序——代码 测试尽可能覆盖尽量多的代码 代码覆盖度工具 ...

  • Java 常用框架学习(Lombok)

    Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。IDEA安...

  • 方法覆盖和多态

    什么时候需要方法覆盖:子类继承父类之后,当继承过来的方法无法满足子类要求时,有权对此方法重新编写。就是方法覆盖 方...

  • eclipse 安装lombok 插件

    在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写...

  • 个人博客开发之blog-api项目整合MyBatisPlus代码

    整合MybatisPlus 导入依赖 配置文件编写 添加mapper扫码 CRUD代码生成 编写代码生成模版工具类...

  • ggplot2编写函数来绘图

    本节来介绍如何编写函数来进行数据可视化,平时画图时我们经常会发现需要编写许多重复的代码来进行绘图,这样不仅使代码冗...

  • Java15-1 覆盖中异常的使用

    先看代码 覆盖时,子类方法覆盖父类方法,只能抛出父类方法异常或者该异常的子类如果父类方法抛出多个异常,子类只能抛出...

  • 编写代码方法

    在类的头文件中尽量少引用其他头文件 多用字面量,少用与之等价的方法 多用类型常量,少用#define预处理指令 并...

  • 两个onCreate方法?你真的了解onCreate()么?

    Activity的onCreate方法一直是我们编写一个activity最先重载的方法。细心的小伙伴在编写代码的时...

网友评论

      本文标题:代码编写时多重覆盖配置文件的方法

      本文链接:https://www.haomeiwen.com/subject/dmfeuctx.html