类型安全的配置|学习笔记

简介: 快速学习类型安全的配置

开发者学堂课程【SpringBoot 实战教程 类型安全的配置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10775


类型安全的配置


内容介绍:

一、定义

二、步骤

三、总结

 

内容简介

上一课讲了自定义属性的值也就是使用注解 value 进行获取如果在 properties文件中自定义属性非常多就需要多次使用注解 value很麻烦所以 springboot又提供了类型安全的配置

 

一、定义

使用 @Value 注入每个自定义配置在项目中显得很麻烦,当自定义属性很多时需要注入很多次 SpringBoot 还提供了基于类型安全的配置方式,通过 @ConfigurationProperties 将 properties 中的属性和一个 Bean 的属性关联,从而实现类型安全的配置

 

二、步骤

1、首先在 properties 文件中自定义属性一个叫 book.author一个叫 book.name如果要获取这两个自定义的值不再使用 value 注解成员变量所在的calss中使用 ConfigurationProperties 注解在命名属性时要让它有一定的规律比如都以相同的前缀开头现在的前缀是 book

@EnableAutoConfiguration

@Controller

@ConfigurationProperties (prefix="book")

public class BookController {

/ /@Value ("$ {book. Author}")

private Stringauthor;{

/ /@Value ("$ {book . name}")

private Stringname ;

@RequestMapping (" /bookInfo")

@ResponseBody

PublicString showInfo ()

{

returnauthor+" : "+name ;

}

使用这种方式只需要使用一次注解不用每次都使用 value注意成员变量需要生成 set get 方法在使用 value 不需要设置使用基于安全配置就需要生成 set get 方法

2、如果有很多自定义属性只要以相同的前缀开头即可就不需要在每一个成员变量上使用注解只需要使用一次指名前缀即可

3、为了区别把值改成 tomsspringboot说明通过指名前缀的方式取到自定义的值

image.png

 

三、总结

1、在 application.properties 文件中自定义属性:例如

book.author=张三

book.name=SpringBoot

2、@ConfigurationProperties(prefix="book")

相关文章
|
Ubuntu Linux 开发工具
Linux下的IMX6ULL——环境搭建与软件安装(一)
Linux下的IMX6ULL——环境搭建与软件安装(一)
661 0
Linux下的IMX6ULL——环境搭建与软件安装(一)
|
机器学习/深度学习 算法 Python
一文速学-时间序列分析算法之加权移动平均法详解+Python代码实现
一文速学-时间序列分析算法之加权移动平均法详解+Python代码实现
1658 0
一文速学-时间序列分析算法之加权移动平均法详解+Python代码实现
|
4月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
384 0
|
Android开发 开发工具 IDE
Android gradle问题解决: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat
1. 问题描述: Android Studio在运行模拟器某些机型或者真机某些机型的时候发生闪退。 错误如下: Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.
2657 0
|
传感器 存储 网络协议
Arduino 中的常见的库
Arduino 中的常见库包括:Wire(I2C通信)、SPI(串行外设接口)、Servo(伺服电机控制)、EEPROM(数据存储)、LiquidCrystal(液晶显示)等,这些库简化了硬件编程,提高了开发效率。
1289 3
|
C语言 计算机视觉
【C语言】移位操作详解 - 《凌波微步 ! 》
移位操作符是C语言中非常重要的工具,提供了高效的位级操作方法。理解和正确使用移位操作符,对于编写高性能和高效能的程序至关重要。本文详细介绍了左移和右移操作符的使用方法、应用场景及注意事项,希望对您理解和使用C语言移位操作有所帮助。
1004 5
|
负载均衡 算法 应用服务中间件
Nginx入门 -- 理解 Nginx 的请求处理流程
Nginx入门 -- 理解 Nginx 的请求处理流程
790 1
|
JSON 前端开发 JavaScript
socket.io即时通信前端配合Node案例
本文介绍了如何使用socket.io库在Node.js环境下实现一个简单的即时通信前端配合案例,包括了服务端和客户端的代码实现,以及如何通过socket.io进行事件的发送和监听来实现实时通信。
316 2
|
存储 弹性计算 负载均衡
SLB-工作负载(Workload)
SLB-工作负载(Workload)
970 0