zoukankan      html  css  js  c++  java
  • SpringBoot多环境配置+自定义属性+随机数配置

    1、SpringBoot多环境配置
    1.1多环境配置的引入
    在项目的整个研发过程中,同一个项目会面临着不同的使用环境。使用环境的不同,需要的配置信息也会不同。例如:数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境中,我们是使用正式的数据库,如果在项目中只有一个application.properties(application.yml)一个配置文件的话,该文件中的属性值会经常需要改动,就会使项目整体的体验变得非常差,而且出错率也极高。
    这时候,我们可以使用profile在不同的环境下配置不同的配置文件,这样一来,在SpringBoot项目中就出现了多环境的配置文件。
    1.2多环境配置的设置
    创建多环境配置文件时,需要遵循SpringBoot允许的命名约定来命名,格式为:application-{profile}.properties。
    例如:
    开发环境:application-dev.properties
    生产环境:application-prod.properties
    测试环境:application-test.properties
    默认环境:application.properties
    多环境配置文件和application.properties文件一样可以放置在项目中四个位置任意一处
    1.3多环境的切换
    项目如何切换到其他环境的配置文件?
    在application.properties中,设置spring.profiles.active来具体激活一个或者多个配置文件,如果没有指定任何profile的配置文件的话,springboot默认会启动application-default-default.properties(默认环境)。
    例如:spring.profiles.active=dev
    dev就是配置文件名中的名称
    开发环境。
    1.4命令行设置属性值
    除了通过设置配置文件来修改属性外,还可以通过命令行来修改属性值。在命令行运行时,连续的两个减号--就是对application.properties中的属性值进行赋值的标识,所以,java-jar xxx.jar--server.port=8888命令等价于我们在application.properties中添加属性server.port=8888。
    通过命令行来修改属性值确实比较便利,但是通过命令行就能更改应用运行的参数,对于项目的安全性构成了一定的威胁。所以SpringBoot框架中也提供了屏蔽命令行访问属性的设置,加入:SpringApplication.setAddCommandLineProperties(false)就可以屏蔽。
     
    2、自定义属性
    SpringBoot可以在配置文件中修改默认约定的属性值,还可以添加一些自己需要的属性,也就是可以自定义一些属性,这些自定义的属性可以使用@Value注解将属性值注入到beans中,或者使用@ConfigurationProperties注解将属性值绑定到结构化的beans中。
    2.1配置文件中的自定义属性
    自定义的属性可以放到application.properties或者application.yml全局配置文件中,也可以自定义配置文件中定义。
    2.2绑定属性值
    定义一个Student类需要添加@Component注解,让spring在启动的时候扫描到该类,并添加到spring容器中。给属性绑定值,有两种方法:
    2.3@Value的使用
    @Value注解可以绑定属性值,但是只能绑定简单类型的属性值,通常用SpEL方式绑定。
    例如:
    1.
    2.getter/setter方法+toString方法
    3.在controller层添加:
    必须使用@Autowired,自动注入,自己手动new没有作用,不能绑定值。
    4.启动项目,在网页运行页面,然后在控制台会输出
    2.4@ConfigurationProperties的使用
    @ConfigurationProperties用于批量的为属性绑定值,可以用于任何数据类型,使用时需要指定配置文件的属性前缀。
    3、随机数配置
    SpringBoot支持在系统加载时配置随机数,使用${random}可以生成各种不同类型的随机值,从而简化了代码生成的麻烦,例如生成int值、long值、string字符串。
    3.1定义随机数
    3.2绑定属性值
    3.3在Controller中添加
     
     
    扩展:
    使用@Value绑定复杂的数据类型,比如数组,集合
    1.属性文件
    修改为
    2.绑定
     
  • 相关阅读:
    什么是线程池?
    线程包括哪些状态?状态之间是如何变化的?
    C语言中的文本流与二进制流的区别
    Windows+IIS结合LVS+Keepalived是实现Linux负载均衡软件
    Linux中的lo回环接口详细介绍
    Keepalived原理与实战精讲
    分布式文件系统MFS(moosefs)实现存储共享(第二版)
    C语言缓冲区(缓存)详解
    Android如何防止apk程序被反编译
    Android APK反编译详解(附图)
  • 原文地址:https://www.cnblogs.com/sqyss/p/10012509.html
Copyright © 2011-2022 走看看