自定义属性配置加粗样式
- @value 注解方式进行配置
我们创建一个用户的实体类,通过 @value 注解 以 ${} 方式拿到用户的 姓名、性别、手机号
首先我们在pom依赖中添加lombok依赖,通过@Data注解的方式自动创建get/set方法,简化代码。
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
创建用户类
package com.tqs.demo;
import lombok.Data;
import java.io.Serializable;
/**
* @Auther: HP
* @Date: 2019/6/15 08:39
* @Description:
*/
@Data
public class UserModel implements Serializable {
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private Integer sex;
/**
* 手机号
*/
private String phone;
}
创建controller 用来进行访问
package com.tqs.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Auther: HP
* @Date: 2019/6/14 18:45
* @Description:
*/
@RestController
public class Hello {
@Value("${tqs.name}")
private String name;
@Value("${tqs.sex}")
private int sex;
@Value("${tqs.phone}")
private String phone;
@RequestMapping("getUser")
public UserModel user(){
/*创建一个用户*/
UserModel userModel = new UserModel();
userModel.setName(name);
userModel.setSex(sex);
userModel.setPhone(phone);
return userModel;
}
}
启动项目,浏览器端访问http://localhost:8001/getUser,效果如下:
这样,我们成功的拿到了配置文件的自定义属性值
- 前缀方式
Spring Boot支持通过前缀自动将属性封装的对象中,非常适合属性比较多的情况,其实在各种启动器中也是通过这种方式获取自定义属性的.
我们修改上面的用户类,添加@ConfigurationProperties注解并通过设置prefix制定其前缀为 tqs
package com.tqs.demo;
import lombok.Data;
import java.io.Serializable;
/**
* @Auther: HP
* @Date: 2019/6/15 08:39
* @Description:
*/
@Data
@Component
@ConfigurationProperties(prefix = "tqs")
public class UserModel implements Serializable {
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private Integer sex;
/**
* 手机号
*/
private String phone;
}
在controller中将UserModel 注入进来,将接口地址改为 getUser2
@RestController
public class Hello {
@Autowired
private UserModel userModel;
@RequestMapping("getUser2")
public UserModel user(){
return userModel;
}
}
重启项目,访问http://localhost:8001/getUser2,效果如下,我们依然可以获取到配置中自定义的属性值
注
我们在controller中使用了@RestController注解,而不是之前的 @Controller,@RestController是组合注解,其中包括以下两个注解Controller 和 ResponseBody
@org.springframework.stereotype.Controller
@org.springframework.web.bind.annotation.ResponseBody
如果将类上的@RestController 改为@Controller ,浏览器端想要出入json格式的话,就需要再引入@ResponseBody
参照 蝈蝈的博客