当前位置: 首页 > news >正文

四川网站建设设计公司网页设计代码模板百度模板

四川网站建设设计公司,网页设计代码模板百度模板,建小说网站需要多少钱,四川建设网站目录 配置文件 语法结构 基本语法 多个properties配置文件 激活指定配置文件 ​在配置文件中指定 spring.profiles.activedev yml支持多文档块方式 运行测试 配置文件加载位置 获取配置文件中的数据 使用Value注解 使用ConfigurationProperties注解 Value获取值和…

目录

配置文件

语法结构

基本语法

多个properties配置文件

激活指定配置文件

​在配置文件中指定 spring.profiles.active=dev

yml支持多文档块方式

运行测试

配置文件加载位置

获取配置文件中的数据

使用@Value注解

使用@ConfigurationProperties注解

@Value获取值和@ConfigurationProperties获取值比较

松散绑定

SpEL

JSR303数据校验

 依赖导入

Bean Validation 规范内嵌的约束注解


配置文件

        SpringBoot使用一个全局的配置文件,配置文件名是固定的application.propertiesapplication.yml)。
        配置文件的作用:修改SpringBoot自动配置的默认值,SpringBoot在底层都给我们自动配置好了。

语法结构

application.properties

语法结构 :key=value

server.port=8081

application.yml(推荐)

基本语法

  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 大小写敏感
  • 语法结构 :key:空格 value (空格不能省略)

server:
  port: 8081

application.yml 设置数据

YAML 支持的三种数据结构:

  • 字面量:单个的、不可再分的值
  • 对象:键值对的集合
  • 数组:一组按次序排列的值
server:port: 8081#普通key-value
name: 埼玉#对象
student:name: QiYuage: 3#对象行内写法
student: {name: QiYu,age: 3}#数组
pets:- cat- dog- pig#数组行内写法
pets1: [cat,dog,pig]

yaml可以直接给实体类赋值

person:name: 埼玉age: 3happy: truebirth: 2020/7/27maps: {k1: Flash,k2: King}lists:- code- musicdog:name: 波奇age: 3

多个properties配置文件

我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml
默认使用application.properties的配置

激活指定配置文件

​在配置文件中指定 spring.profiles.active=dev

application.properties:

server.port=8081
spring.profiles.active=dev

yml支持多文档块方式

spring:profiles:active: dev #指定属于哪个环境
---
server:port: 8083
spring:config:activate:on-profile: dev
---
server:port: 8084
spring:profiles: prod  #不推荐的写法

运行测试

配置文件加载位置

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件

  • classpath:/config/
  • classpath:/


获取配置文件中的数据

使用@Value注解

在application.yaml中添加数据

dog:name: 波奇age: 3

将数据映射到Dog实体类中

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
public class Dog {@Value("${dog.name}")private String name;@Value("${dog.age}")private String age;
}

注意:导入@Value注解的包为:import org.springframework.beans.factory.annotation.Value;如果@Value提示错误很可能是导包错误。

运行测试,已将配置文件中的数据设置到实体类中

使用 @Value 注解有两点注意事项:

  • 对象要交给 Spring 容器管理,也就是需要在类上加 @Component 等注解;
  • 在静态变量上直接添加 @Value 注解是无效的。若要给静态变量赋值,可以在 set() 方法上加 @Value 注解。

使用@ConfigurationProperties注解

在application.yaml中添加数据

person:name: 埼玉age: 3happy: truebirth: 2020/7/27maps: {k1: Flash,k2: King}last-name: 光头披风侠lists:- code- musicdog:name: 波奇age: 3

使用注解将配置文件中的数据注入到实体类中(实体对象需要为Bean)

@ConfigurationProperties

编写Java实体类

@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String name;private String age;private Boolean happy;private Date birth;private Map<String,Object> maps;private List<String> lists;private Dog dog;
}

运行测试,数据导入成功

注意:注解的实体对象的属性名要和配置文件中的属性名相同,否则不能设置成功


@Value获取值和@ConfigurationProperties获取值比较

项目@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
松散绑定(松散语法)支持不支持
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

注意:

  • 配置文件yml还是properties他们都能获取到值
  • 只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value
  • 使用javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties

松散绑定

        yaml中写的last-name,这个和lastName是一样的“-”后面跟着的字母默认是大写的。这就是松散绑定。

在Person中加入lastName字段

@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String name;private String age;private Boolean happy;private Date birth;private Map<String,Object> maps;private String lastName;private List<String> lists;private Dog dog;
}

  在yaml文件中加入last-name: 光头披风侠字段

person:name: 埼玉age: 3happy: truebirth: 2020/7/27maps: {k1: Flash,k2: King}last-name: 光头披风侠lists:- code- musicdog:name: 波奇age: 3

测试成功


SpEL

        详细使用参考:Spring-SpEL表达式超级详细使用全解-CSDN博客


JSR303数据校验

  • JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation
  • Bean Validation 是一个运行时的数据验证框架,用于校验数据合规性。
 依赖导入
<!--引入validation的场景启动器-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Bean Validation 规范内嵌的约束注解
限制说明
@Null限制只能为null
@NotNull限制必须不为null
@AssertFalse限制必须为false
@AssertTrue限制必须为true
@DecimalMax(value)

限制必须为一个不大于指定值的数字

@DecimalMin(value)限制必须为一个不小于指定值的数字
@Digits(integer,fraction)限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future限制必须是一个将来的日期
@Max(value)限制必须为一个不大于指定值的数字
@Min(value)限制必须为一个不小于指定值的数字
@Past限制必须是一个过去的日期
@Pattern(value)限制必须符合指定的正则表达式
@Size(max,min)限制字符长度必须在min到max之间
@Past验证注解的元素值(日期类型)比当前时间早
@NotEmpty验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

给对象添加校验注解

public class QiYu {private Integer id;@NotBlank(message = "名称不能为空")private String name;private Date data;@NotNull(message = "年龄不能为空")private Integer age;@Pattern(regexp = "[0-9]" ,  message = "参数格式错误")private String Telephone;
}

Controller 中需要校验的参数Bean前添加 @Validated开启校验功能,紧跟在校验的Bean后添加一个BindingResult,BindingResult封装了前面Bean的校验结果。

    @GetMapping("/validation")public String into(@Validated QiYu qiyu , BindingResult bindingResult) {if(bindingResult.hasErrors()){Map<String,String> map = new HashMap<>();bindingResult.getFieldErrors().forEach((item) ->{String msg = item.getDefaultMessage();String fie = item.getField();map.put(fie,msg);});return map.toString();}return "200";}

运行测试,由于QiYu对象属性未赋值所以会提示错误信息。

至此鸣谢:SpringBoot的配置【配置文件、加载顺序、配置原理】(超详细)_springboot component 和service那个先启动-CSDN博客Spring Boot 使用 JSR303(@Validated) 实现参数校验_validator对应springboot3版本-CSDN博客

http://www.dtcms.com/a/564155.html

相关文章:

  • 如何利用建站平台服务客户sem优化师是做什么的
  • 网站登录怎么做wordpress 评分功能
  • 成都微信网站建设报价哈尔滨网络公司排行
  • 石家庄seo网站优化电话自助免费建站
  • 垂直行业门户网站建设方案建设一个网站的步骤
  • 建设银行网站登录不进去如何快速建网站
  • 网站建设 文档下载外贸管理网站模板
  • 青岛网站优化公司太原网站开发公司
  • 做料理网站关键词怎么设置排名好的昆明网站建设
  • 建筑公司需求发布网站人才网站建设标题
  • 信誉好的丹徒网站建设代理网关app未运行
  • php网站开发练手项目江苏南京建设工程信息网站
  • 大兴区住房与城乡建设部网站wordpress首页文章带图
  • 做个手机网站wordpress 要多少钱
  • 网站怎么维护更新网站建设收费标准行情
  • 大连开发区图书馆移动建站优化
  • 北京响应式网站建设推荐wordpress中文主题
  • 开发一个网站做爬虫龙岩网红
  • 廊坊商昊网站建设女孩短期技能培训班
  • 无锡专业网站网站备案没通过不了
  • 去类似美团网站做软件开发在线咨询免费
  • 福州专业网站建设密云区社区建设网站
  • 当今做啥网站能致富购物商城网站
  • 免费学编程的网站有哪些广州广告网站建设
  • 网站建设海之睿专业网站建设代理
  • 做网站主要注意些什么问题昆明企业官网制作
  • 成都信用建设网站wordpress首页轮播图
  • 网站 错误代码wordpress 后台速度优化
  • 网站建设佳木斯宁波网站建设设计公司信息
  • 安徽网站推广公司自学php制作网站有哪些软件