栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot核心配置与注解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot核心配置与注解

2.1全局配置文件
 全局配置文件可以对一些默认的配置进行修改   (作用)
 全局配置文件存放在resources目录下
 全局配置文件可以是application.properties或者application.yaml /application.yml

2.1.1 application.properties配置文件

创建项目,在application.properties中修改端口号为8081,访问路径修改为/chapter021

2.1.2 application.yaml配置文件
1.基本语法 (注意冒号的中英文)
Key:(空格)value
数组(List、Set):用-值表示数组中的一个元素


Application.properies和application.yaml的区别

    properties中以“.”进行分割,yaml中以“:”分割yaml中缩进不能使用Tab,只能用空格在同一优先级目录下,application.properties会覆盖application.yaml中相同的内容。
2.2.1使用@ConfigurationProperties注入属性

注意:使用@ConfigurationProperties注解批量注入属性值时,要保证配置文件中的属性与对应实体类的属性一致,否则无法正确获取并注入属性值

2.2.2使用@Value注入属性
    完成单个属性值的注入使用该注解注入的属性类型只能是基本的数据类型(如数字、字符串、布尔等)。不能是对象类型、数组类型或者集合类型。
    2.2.3 两种注解对比分析

验证松散绑定和JSR303数据检验:

在pom.xml文件中添加如下依赖

org.springframework.boot
spring-boot-configuration-processor
true

添加@Email注解后报红
在pom.xml文件中的标签中添加如下依赖:

org.springframework.boot
spring-boot-starter-validation

2.3.1 使用@PropertySource加载配置文件
   ----指定自定义配置文件的位置和名称

2.3.2 使用@importResource注解加载xml文件
     ---指定XML文件位置

SpringBoot默认不再使用XML 文件配置项目,但是如果希望将外部的xml文件加载到程序中,可以使用@importResource注解加载xml文件。

2.3.3 使用@Configuration注解编写自定义配置类

@Configuration注解可以指定配置类,它的作用和xml文件配置是一样的。
配置类中的@Bean注解方法返回的对象作为Bean注入Spring容器,并且默认情况下,使用@Bean注解的方法名就是组件名。
问题:

把@importResource注释掉,myService改为myService1,报错 ???

成功解决:先启动了Chapter02Application类,然后启动测试类,不报错了!!!!???

2.4.1 使用Profile 文件进行多环境配置
    多环境配置文件格式
    Application-{profile}.properties {profile}对应具体的环境标识
    2.可以通过命令行或者在全局配置文件中配置


(1) 命令行方式

单击图中的m,会弹出对话框,输入mvn clean,执行clean命令,删除掉target文件夹。
再单击图中的m,弹出的对话框中输入mvn package,对项目进行打包,生成target文件夹。

问题:打包成功后,在Terminal中输入java -jar chapter021-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev,出现错误

应该是Java版本的问题,于是把项目中的Java版本由11改为8还是报相同的错,最后重新创建了项目,

成功解决

(2) 全局配置文件中进行配置

2.5随机值设置以及参数间引用

语法格式:${random.xx} xx表示需要生成的随机数类型和范围

    随机值设置
    在application.properties中写以下代码:

测试类中代码:

报这个错误java.lang.Exception: No tests found matching Method randomTest
原因在测试类中没加@Test,加上之后运行成功

    参数间引用
    语法格式:${xx} xx表示先前在配置文件中已经配置过的属性名
    在application.properties中的代码:

在测试类中的代码:

问题:控制台中文乱码

解决方案:

还需要在全局配置文件中添加如下代码:

【学习总结】

使用@ConfigurationProperties注入属性
使用@Value注入属性
使用@PropertySource加载配置文件 指定自定义配置文件的位置和名称
使用@importResource加载XML配置文件 指定XML文件位置
使用@Configuration编写自定义配置类 自定义配置类,Spring容器组件
@ Bean:进行组件配置
使用Profile文件进行多环境配置,使用@Profile注解进行多环境配置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768668.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号