基于springboot的约定优于设置
的原则,在大都环境下,启动一个应用时,根基上无需做太多的设置,昆山软件开发,应用就能正常启动。但在大部门开拓情况下,添加特别设置是无所制止的,好比自界说应用端标语(较量在呆板较量少的环境下,一台呆板照旧需要陈设多个应用的,虽然操作docker
的话,是可制止的,这是后话了)、mq的处事地点、缓存处事的处事地点、数据库的设置等,都或多或少的需要一些外部的设置项。
设置文件名目扼要说明
springboot
默认的全局设置文件名为application.properties可能application.yml(spring官方推荐利用的名目是.yml
名目,昆山软件开发,今朝官网都是实例都是利用yml名目举办设置讲授的),应用启动时会自动加载此文件,无需手动引入。除此之外尚有一个bootstrap
的全局文件,它的加载顺序在application
设置文件之前,主要是用于在应用措施上下文的引导阶段,昆山软件开发,在后期讲授springCloudCofnig
时,主要是操作此特性,举办设置文件的动态修改,在此不表,在凡是环境下,此两个设置文件是没有不同的,所以一般上都只需要设置application
即可。
自界说属性值
application.properties
设置文件支持自界说属性的支持,好比
blog.address=https://blog.lqdev.cn blog.author=oKong
然后可通过@Value("${blog.author}")
的形式获取属性值。
@RestController public class DemoController { @Value("${blog.address}") String address; @Value("${blog.author}") String author; @Value("${blog.desc}") String desc; @RequestMapping("/") public String demo() { return desc; } }
这里提醒下,在填写一些默认的好比,数据库属性时,可利用alt+/
的方法,IDE会自动显示提示,制止了手动嵌入属性值可能健忘属性的难过。
关于自界说属性时,出格是一些公用包,会利用到属性值时,发起在建设additional-spring-configuration-metadata.json
属性元文件,这样在利用上述快捷方法时,会举办提示,包罗属性名和属性说明,这样也利便挪用者询问属性名是啥。
相关configuration-metadata
说明可查察:https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html
属性引用
在设置文件中,各个属性参数可举办引用的,好比:
blog.address=https://blog.lqdev.cn blog.author=oKong blog.desc=${blog.author},${blog.address}
最后blog.desc
的值即可:oKong,https://blog.lqdev.cn
。操作此特性,并可实现一些非凡的成果。好比后期讲授spring cloud
时,注册eurka
注册中心的实例名时,并会利用雷同如下设置,使得实例名一眼就知道哪台处事地点:
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
这里需要留意,由于springboot
在读取properties
文件时,利用的是PropertiesPropertySourceLoader
类举办读取,默认读取的编码是ISO 8859-1
,故在默认的设置文件中利用中文时,会呈现乱码,此时可以将中文转成Unicode
编码可能利用yml
设置名目(默认就支持utf-8),再不济可以将作为设置写入到一个自界说设置文件,操作@PropertySource
注解的encoding
属性指定编码
随机数
Spring Boot的属性设置文件中可以通过${random}
来发生int值、long值可能string字符串,来支持属性的随机值。
# 随机字符串 .blog.value=${random.value} # 随机int .blog.number=${random.int} # 随机long .blog.bignumber=${random.long} # 10以内的随机数 .blog.test1=${random.int(10)} # 1-20的随机数 .blog.test2=${random.int[1,20]}
自界说设置文件
在大都环境下,设置信息根基上都是放入application.properties
文件中,但在一些场景下,好比某个设置项较量多时,为了分隔存放,也可自界说设置文件,如my.properties
。由于自界说的文件,系统不会自动加载,这个时候就需要手动引入了。 操作@PropertySource
注解既可以引入设置文件,需要引入多个时,可利用@PropertySources
配置数组,引入多个文件。
@SpringBootApplication @PropertySource(value="classpath:my.properties",encoding="utf-8") public class Chapter3Application { public static void main(String[] args) { SpringApplication.run(Chapter3Application.class, args); } }
设置绑定工具