场景

使用@Value注入每个自定义属性很麻烦,当自定义属性很多时就需要注入很多次。

SpringBoot提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties中的属性和一个Bean中的属性关联,从而实现类型安全的配置。

实现

1.在application.properties中添加属性

book.author=Badao
book.name=SpringBoot
book.price=50
book.time=2019
book.other=liumang
book.qizhi=qizhi

2.在Controller中添加注解

@ConfigurationProperties(prefix="book")

3.区别

使用类型安全的配置不用在属性上添加@Value注解,但是所有属性要有set和get方法。

举例

新建BookController.java

package com.example.demo.controller;import javax.sound.midi.MidiDevice.Info;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@EnableAutoConfiguration
@Controller
@ConfigurationProperties(prefix="book")
public class BookController {private String author;private String name;private String price;private String time;private String other;private String qizhi;@RequestMapping("/bookInfo")@ResponseBodypublic String showInfo() {return author+":"+name+":"+price+":"+other+":"+qizhi;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getOther() {return other;}public void setOther(String other) {this.other = other;}public String getQizhi() {return qizhi;}public void setQizhi(String qizhi) {this.qizhi = qizhi;}public static void main(String[] args) {SpringApplication.run(BookController.class, args);}}

效果

运行上面main方法,打开浏览器输入:

http://localhost:8080/bookInfo

源码下载:

https://download.csdn.net/download/badao_liumang_qizhi/11046525

SpringBoot中使用类型安全的配置来注入大量自定义属性相关推荐

  1. Springboot中手动new的对象无法注入交给Spring容器管理的原因及解决办法

    Springboot中Bean的注入 我们都知道,Springboot可以使用方法级别注解(@Bean)和类级别注解(@Controller.@Component.@Service等)加包扫描的方式注 ...

  2. RabbitMq学习笔记002---RabbitMq在SpringBoot中的应用_配置_使用_并且设置优先级

    JAVA技术交流QQ群:170933152 首先新建一个SpringBoot的工程,空的就可以: 可以用idea 也可以用eclipse,也可以用sts,这类工具都可以 E:\StsWorkSpace ...

  3. 超简单的Springboot中的日志管理配置

    本案例中可以了解,怎么配置日志的输出路径,输出格式(比如说zip格式),按日期进行划分(今天的日志输出为一个文件,明天的日志输出到另一个文件),在按日期划分的同时又按文件大小划分(比如说每天的日志记录 ...

  4. SpringBoot中多数据源的配置

    1.场景还原 在实际项目中,一个工程配置多个数据源很常见,工程可能会根据业务或者模块访问不同的数据库或表:今天笔者就springboot中配置多数据源作个详细的讲解 2.实现方案 注意:一个应用工程中 ...

  5. springboot中关于springMvc默认配置,配置扩展,全面接管

    1. apringMvc自动配置 springBoot整合springMVC时,提供了大量的自动化配置,相关的配置可查看org.springframework.boot.autoconfigure.w ...

  6. springboot 中使用 Mybatis 注解 配置 详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 传参方式 使用不同的传参方式: 使用@Param 之前博文中的项目使用了这种简单的传参方式: @In ...

  7. springboot中使用servlet通过配置类

    在servlet目录下创建个servlet类,示例代码如下: package com.bjpowernode.springboot.servlet;import javax.servlet.Servl ...

  8. SpringBoot中LogBack日志输出配置记录

    <?xml version="1.0" encoding="UTF-8"?><!-- Created by jinKai on 2017/1/ ...

  9. Springboot中使用Shiro的配置与realm的构建

    //shiro配置package com.goodwe.admin.configure;import org.apache.shiro.mgt.SecurityManager; import org. ...

最新文章

  1. pve rust 能拆家吗_RUST:2020年9月第四周:向上向上再向上!
  2. Linux platform总线(1):总体框架
  3. 笔记本电脑如何强制关机_长按电源键强制关机会损害笔记本硬件吗?联想:不会但不建议...
  4. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...
  5. 安装错误 服务尚未启动_原创 | 西门子300软件安装出错处理大全
  6. JS调用后台方法大全
  7. 开源中国 精彩回顾_如何撰写精彩的事件回顾
  8. step与matlab的opc,wincc与matlab通过OPC通讯
  9. 深入理解 WordPress 数据库中的用户数据 wp_user
  10. ai会取代程序员吗_机器会取代程序员吗?
  11. 【问题4】Redis 的并发竞争问题是什么?了解 redis 事务的 CAS 方案吗?
  12. android 版本 6.0升级包,EMUI 6.0系统刷机包
  13. incaseformat病毒分析
  14. Docker 配置镜像加速器
  15. 计算机专业毕业了,还要不要参加培训班
  16. android 支付宝参数说明,android 支付宝 接入流程总结
  17. 《考研公共课复习指导》随笔及其它
  18. 23种设计模式之代理模式(动态代理)
  19. 日语基础复习 Day 16
  20. HDU 2011 多项式求和

热门文章

  1. linux 760权限,Linux 文件rwx权限问题 chmod 777 XXX 任何人拥有最高权限
  2. Java 获取文件路径
  3. Java中判断数组是否包含某值
  4. list集合去重的三种方式
  5. JavaWeb 入门篇(1)Maven创建Web项目 Idea配置tomcat
  6. SpringBoot-Security 具体案例、 实现安全框架、权限控制、aop切入
  7. 联想Ideapad 710S-13IKB笔记本安装win10系统不认硬盘解决方法
  8. mysql左连接_MySQL left join 左连接的通俗理解
  9. java接监控摄像头接口_离奇!深夜隧道内,12个摄像头突然一个接一个“瞎”了,监控员吓懵了...
  10. python编程定义圆_Python语言编程系列014——PyQt中自定义圆形指示灯