根据上文的介绍,我们已经对Spring Boot中的application.properties配置有了一定的了解,下面我们对此进行最后的介绍。
  紧接上文的讲解,如下:

普通属性的注入

  由于 Spring Boot 源自 Spring ,所以 Spring 中存在的属性注入,在 Spring Boot 中一样也存在。由于 Spring Boot 中,默认会自动加载 application.properties 文件,所以简单的属性注入可以直接在这个配置文件中写。
1、我们首先定义一个bean:

public class Book {private Integer id;private String author;private String name;@Overridepublic String toString() {return "Book{" +"id=" + id +", author='" + author + '\'' +", name='" + name + '\'' +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}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;}
}

2、然后我们在Spring Boot 的application.properties配置文件中进行一下配置:

book.name=三体
book.author=刘慈欣
book.id=11

3、按照spring的方式,我们可以根据注解:@Value将这些属性注入到容器中去管理。

@Component
public class Book {@Value("${book.id}")private Integer id;@Value("${book.author}")private String author;@Value("${book.name}")private String name;//此处省略get和set方法

注意:既然要使用spring 的方式的话,那么Book对象本身也是要交给Spring容器管理的,如果Book没有交给Spring容器管理的话,那么Book的属性也是无法从Spring容器中获取的到。
4、最后,我们进行测试,启动项目,即可看到注入的属性的值

@RestController
public class HelloController {@AutowiredBook book;@GetMapping("/hello")public String hello() {System.out.println(book);return "hello spring boot!";}
}

浏览器访问:

后台数据:

这里我们会发现数据可以获取到,但是乱码了,这时我们需要修改配置文件的编码格式:打开 Setting ,修改如下:

我们再次修改 application.properties 文件,再次启动项目,访问 http://localhost:8080/hello 后台显示数据如下,我们会发现数据没有再乱码了:

注意:一般来说,我们在 application.properties 文件中主要存放系统配置,这种自定义配置不建议放在该文件中,可以自定义 properties 文件来存在自定义配置。

  例如在 resources 目录下,自定义 book.properties 文件,内容如下:

使用这种方式,项目启动并不会自动的加载该配置文件,首先我们要配置项目启动时加载此配置文件:如果是在 XML 配置中,可以通过如下方式引用该 properties 文件:

<context:property-placeholder location="classpath:book.properties"/>

如果是在 Java 配置中,可以通过 @PropertySource 来引入配置:

@Component
@PropertySource("classpath:book.properties")
public class Book {@Value("${book.id}")private Integer id;@Value("${book.author}")private String author;@Value("${book.name}")private String name;//此处省略get和set方法

使用@PropertySource注解后,启动项目,就会自动加载book.properties文件。
注意:上面介绍的是我们所常用的Spring中属性注入的一种方式,和Spring Boot没有任何关系。

类型安全的属性注入

  Spring Boot 引入了类型安全的属性注入,如果采用 Spring 中的配置方式,当配置的属性非常多的时候,工作量就很大了,而且容易出错。

使用类型安全的属性注入,可以有效的解决这个问题。

@Component
@PropertySource("classpath:book.properties")
@ConfigurationProperties(prefix = "book")
public class Book {private Integer id;private String author;private String name;//此处省略get和set方法

注意:在这里,我们添加了@configurationProperties后,可能会报以下错误:
出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationProperties这个注解时,所以问题出现在ConfigurationProperties注解。
根据提示的not found in classpath,查询此注解的使用关于怎么指定classpath,进而查询location,Spring Boot1.5以上版本@ConfigurationProperties取消location注解

官方解决方案:Maven引入依赖

<dependency><groupId> org.springframework.boot </groupId><artifactId> spring-boot-configuration-processor </artifactId><optional> true </optional>
</dependency>

Spring Boot 中的这种方式,主要是引入 @ConfigurationProperties(prefix = “book”) 注解,并且配置了属性的前缀,此时会自动将 Spring 容器中对应的数据注入到对象对应的属性中,就不用通过 @Value 注解挨个注入了,减少工作量并且避免出错。

注意:使用这种方式时,如果需要注入的属性是在自定义配置文件中,那么 @PropertySource 这个注解还是不能省略的,如果你需要注入的属性在默认的 application.properties 中,那么则不需要了。

Spring Boot中application.properties配置文件介绍到此结束,感谢阅览!!!

Spring Boot(四)-- 中的application.properties配置简介 2相关推荐

  1. Spring Boot中的application.properties配置简介(二)

    Spring Boot中的application.properties配置简介(二)   根据上文的介绍,我们已经对Spring Boot中的application.properties配置有了一定的 ...

  2. spring boot项目中的application.properties设置了时区不生效的处理

    1.有时候在spring boot中连接数据库时设置了时区,但是还是不生效, 如在application.properties 的pring.datasource.url中设置了 2.但结果,查询出来 ...

  3. spring boot项目下的application.properties中的logging.level设置日志级别

    logging.level.root=info就是默认的情况 #只打印error错误信息 logging.level.root=error

  4. 如何在其他类中使用application.properties的属性

    在Spring Boot项目中,application.properties文件内容如下: #mongo配置 spring.data.mongodb.host = spring.data.mongod ...

  5. Spring Boot框架中使用Jackson的处理总结

    1.前言 通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据 ...

  6. mybatis 配置_配置Mybatis在Spring Boot工程中的整合

    配置Mybatis在Spring Boot工程中的整合包,设置mybatis的实体类别名,输出执行sql语句配置项. 分析: 添加启动器依赖: 配置Mybatis:实体类别名包,日志,映射文件等: 配 ...

  7. Spring Boot 应用中 Spring Session 的配置(1) : 自动配置 SessionAutoConfiguration

    概述 本文基于以下组合的应用,通过源代码分析一下一个Spring Boot应用中Spring Session的配置过程: Spring Boot 2.1.3.RELEASE Spring Sessio ...

  8. Spring Boot 架构中的国际化支持实践—— Spring Boot 全球化解决方案

    背景 Spring Boot 主要通过 Maven 或 Gradle 这样的构建系统以继承方式添加依赖,同时继承了 Spring 框架中的优秀元素,减少了 Spring MVC 架构中的复杂配置,内置 ...

  9. spring boot 四:全局异常捕捉

    spring boot 四:全局异常捕捉 1 前言 希望定制错误,比如一般springboot的500错误展示如下(trace等可以通过配置application.yml来决定隐藏还是具有): app ...

最新文章

  1. 笔记-信息系统开发基础-软件测试-灰度测试
  2. leetcode-有效的括号(三种语言不同思路)
  3. mysql三次握手_TCP的三次握手和四次挥手详解
  4. POJ - 3179 Corral the Cows(离散化+二分+二维前缀和)
  5. 工作中的javascript代码收集及整理
  6. wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger
  7. 互联网日报 | 2月23日 星期二 | 华为发布新一代折叠旗舰Mate X2;字节跳动游戏官网正式上线;携程设立轮值制度...
  8. 关于Mysql的错误:No query specified
  9. php 5.2.17 中文乱码,php5.2 Json中文乱码解决方法
  10. vue router children 路由变了 组件没变_Vue.js从零开始——路由(2)
  11. 打印机打印字体轻,像针式的故障处理(图)
  12. 基于matlab的高等数学实验,《基于MATLAB高等数学实验》出版发行
  13. 全球气象数据网站(大气、海洋数据应有尽有)
  14. 学习笔记61—兴趣阅读之经济学
  15. html实现手机截屏,iPhone手机如何实现网页长截图?
  16. 手机游戏制作(开发流程)
  17. jmeter 之 配置jdbc环境
  18. OOA/OOD/OOP(了解)
  19. 关于linux下的xinetd服务
  20. 《程序员》专访上海寰彩网络科技有限公司CEO谢晓

热门文章

  1. 爬取大众点评评论-字体加密解析!这个网站很难搞出来!
  2. 软件工程导论期末考试-试卷2
  3. updater-script命令详解教你写刷机脚本
  4. mac 两种视频转音频方法
  5. 不懂算法,还想进大厂?做梦吧(转载自微信公众号 -- 大飞码字)
  6. 推挽输出与开漏输出的区别
  7. 那些年遇到的奇葩老板
  8. 整车EOL 诊断系统
  9. ecshop文件结构
  10. 190327-Matlab清除指定变量之外的所有变量