以SpringMVC为例 SpringBoot构建方式( 二 )


boot启动时就会找相应的配置文件,在cmd中运行jar包时,传递参数也为–..name=ebank(还是两个减号,一个减号可能会识别命令行的参数,具体也不懂,知道的可以评论一下,蟹蟹)
yml配置详解
yml格式优点:1.格式比较有层次感,2.不会有太多的冗余3.配置数组简单数据前面要加空格与冒号隔开元素数组定义likes:- book- eat- program-122 #减号后面要用空格不然不识别元素数组缩略版定义likes2: [book,eat,program]对象数组定义users:- name: tomage: 15- name: lucyage: 16users2:-name: tomage: 15-name: lucyage: 16对象数组缩略版定义(json)users3: [{name:tom,age=15},{name:lucy,age=16}]#name:tom中冒号不用加空格
配置文件读取,此后几乎都是使用yml配置格式 使用中@Value注解并结合SpEL进行加载
一个案例演示全了吧,读取users: [{name:tom,age=15},{name:lucy,age=16}]
@Value("${user[1].name}") ==> lucy使用的自动装配来进行读取,装配的数据为类型
@
env
env.(“user[1].name”)定义相应组对象
实例 配置文件中定义
user:
name: “张三”
age: 16
like:

以SpringMVC为例  SpringBoot构建方式

文章插图
- read
- eat
- //2.1.定义数据模型,封装yml中对应的数据
//2.2.定义为管控的bean
@
//2.3.指定加载的数据
@ies( = “user”)
@Data
class User {
name;
int age;
[] like;
}使用
@
User user;输出 ? User(name=张三,age=16,like=[read,eat,]) 上面为读取yml格式的,读取格式会出现各种问题yml与配置文件中都可以引用,与SpEL一样,即
# yml中可以这样配置baseDir: c:\WindowstempDir: ${baseDir}\temp #这样tempDir实际上就是 c:\Windows\temp#properties中可以这样配置baseDir=c:\WindowstempDir=${baseDir}\temp #与yml效果一样
yml与配置文件的不同多环境开发多模块开发问题
多环境开发即多个环境分别为:生产环境,开发环境,测试环境Test, 在不同环境下配置也不尽相同,最明显的就是数据库配置、端口配置等,处理办法有如下
方法一:在一个配置文件中,配置多个环境(需要配置名称)
一个配置文件中配置多环境是以---(三个减号)作为分隔线,可以配置若干个,但是不管配置几个环境,最下面一个没有定义环境名称的环境就是默认环境,配置的为公共配置(指定引用环境),在boot启动时会被加载,我们默认将最上面一个环境设置为默认环境,即:不设置环境名,只设置环境名,不设置引用哪个属性名,则不会执行任何环境,只会执行默认环境(配置文件不支持方法一)
其中设置环境名称好像有三种,1). : : 名,2). : : : on-: 名,这两种视频上讲了,第三种好像也可以(已试),3). :名 。
引用环境就一种: : : 环境名 。
# 默认环境(不定义则为最后一个环境)#配置公共配置#使用哪个环境spring:profiles:active: dev---# 生产环境spring:profiles: proserver:port: 80---# 开发环境#spring:#profiles: dev#profiles: devspring:config:activate:on-profile: devserver:port: 8001---# 测试环境spring:profiles: testserver:port: 8081
方法二:使用多个配置文件,然后在总配置文件中调用环境,调用就是总配置名称-环境标识的配置文件,不管格式(这里用到了上面配置文件名称知识)
在开发中默认还要分多个功能[模块],一般将每个功能[模块]的配置文件都分开书写,即-devDB,-,并且多环境开发时每个环境又有多个模块,可以使用两种方式解决
1). 通过=.=${},${},**优点:**可以直接使用,不需要启动相应的环境(没有多环境),的配置直接被引用, **缺点:**不可以很好的与相关联,切换环境时,即改变时,必须手动改变相应的配置文件 。