springBoot02- 配置文件读取测试

1.照例登陆http://start.spring.io/ ,改个项目名(Artifact),然后下载导入Eclipse

2. 项目结构如下,

  

在pom中添加web依赖(不添加,就找不到RestController这个注解要导入的包了)

1 <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-web</artifactId>
4         </dependency>

3.编写2个配置文件,一个是application.properties,如下:

1 server.port=9090
2 server.servlet.context-path=/spring-boot
3 #server.context-path=/helloboot
4 book.author.name=tom

一个是application.yml ,如下

1 book:
2  author:
3   name1: JACKSON

4. 在com.lch.springboot02.domain 包下创建一个AuthorProperties 类,读取配置文件信息(同时读取2个配置文件,实际证明,springboot是可以同时读取两种格式的配置文件中的配置信息的),使用注解@Value("${配置文件中的属性名}")来读取配置文件,并设置对应属性接收,还需要设置set get方法

 1 package com.lch.springboot02.domain;
 2 
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component
 7 public class AuthorProperties {
 8 
 9     @Value("${book.author.name}")
10     private String authorName;
11     
12     @Value("${book.author.name1}")
13     private String authorName1;
14 
15 
16     public String getAuthorName() {
17         return authorName;
18     }
19 
20     public void setAuthorName(String authorName) {
21         this.authorName = authorName;
22     }
23 
24     public String getAuthorName1() {
25         return authorName1;
26     }
27 
28     public void setAuthorName1(String authorName1) {
29         this.authorName1 = authorName1;
30     }
31 }

5. 在com.lch.springboot02.controller 包下建立contorller类 PropertiesController ,把读取到的配置信息返回给前台显示,这里需要注入 AuthorProperties  的实例

 1 package com.lch.springboot02.controller;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 import org.springframework.web.bind.annotation.RestController;
 6 
 7 import com.lch.springboot02.domain.AuthorProperties;
 8 
 9 @RestController // 使用这个注解必须在pom中引入web模块的依赖!
10 public class PropertiesController {
11     @Autowired
12     AuthorProperties properties;
13 
14     @RequestMapping("/hello")
15     public String hello() {
16         return "hello spring-boot";
17     }
18 
19     @RequestMapping("/author")
20     public String author() {
21         return "the author name is: " + properties.getAuthorName() + ", the author name1 is: " + properties.getAuthorName1();
22     }
23 
24 }

6. 启动应用,访问:http://localhost:9090/spring-boot/author ,结果如下:

之所以是这个请求路径,控制台告诉了我们:

在上一个入门例子中,应用默认端口是8080,context path 是空,这里发生了变化,这是因为springboot读取到了application.properties中配置的端口号和上下文路径(

server.port=9090   server.servlet.context-path=/spring-boot ),并进行了应用.
注意:spring boot 2.0.0的ContextPath配置有变化: server.servlet.context-path=/XXX ,之前是server.context-path=/xxx

 在前端页面展示的结果中,看到了name1的值也有,说明application.yml配置文件中的信息也读取到了。

 例子下载地址: 

https://github.com/liuch0228/springboot.git
原文地址:https://www.cnblogs.com/enjoyjava/p/9000276.html