Springboot联结万物学习笔记--Springboot微服务基础搭建篇(二)--自定义配置的方法
博客说明:撰写博客目的是在记录自己所学知识、在工作中使用技术遇到的技术问题、一些技术感悟,因此避免不了涉及到和其他文章有相似之处。本文从作者自己的实践中指出相关踩坑问题,着重指出学习过程中遇到的相关问题。如果存在相关侵权问题请联系博主删除,同时有技术上的见解可以在评论去里发出,会不定期回复,谢谢。
gitee地址:https://gitee.com/woniurunfast/springbootwitheverything
01目标
1、利用@value自定义配置类使用
2、新建配置类引入配置
02SpringBoot关于自定义属性@Value注入
在resource文件下面创建application-dev.yml
server:
port: 8080
#自定义属性
woniu:
info:
id: 12
type: happy
desc: happy_woniu
hobby: hava fun
修改application.yml
# 环境激活
spring:
profiles:
active: dev
创建service包并创建ConfigTestService类
写入:
package com.hkx.demo.service;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
* 测试配置类使用
*/
@Service
public class ConfigTestService {
@Value("${woniu.info.id}")
private Integer id;
@Value("${woniu.info.type}")
private String type;
@Value("${woniu.info.desc}")
private String desc;
@Value("${woniu.info.hobby}")
private String hobby;
public void testvalue(){
System.out.println(id);
System.out.println(type);
System.out.println(desc);
System.out.println(hobby);
}
}
在上一次创建的工程中的hello控制层写GET接口验证
@Autowired
ConfigTestService configTestService;
@GetMapping("/test/value")
public void testValue(){
configTestService.testvalue();
}
浏览器调用
http://localhost:8080/test/value
结果:
03SpringBoot关于@ConfigurationProperties注入属性
创建config包并创建WoniuProperties类
写入:
package com.hkx.demo.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "woniu.info")
@Configuration
@Data
public class WoniuProperties {
//id
private Integer id;
//type
private String type;
//desc
private String desc;
//hobby
private String hobby;
}
本工程引用了lombok代替set、get,如何使用自行百度,或后期等作者跟新如何使用
ConfigTestService类更新:
package com.hkx.demo.service;
import com.hkx.demo.config.WoniuProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
* 测试配置类使用
*/
@Service
public class ConfigTestService {
@Value("${woniu.info.id}")
private Integer id;
@Value("${woniu.info.type}")
private String type;
@Value("${woniu.info.desc}")
private String desc;
@Value("${woniu.info.hobby}")
private String hobby;
@Autowired
WoniuProperties woniuProperties;
public void testvalue(){
System.out.println(id);
System.out.println(type);
System.out.println(desc);
System.out.println(hobby);
}
public void testConfigClass(){
System.out.println(woniuProperties.getId());
System.out.println(woniuProperties.getType());
System.out.println(woniuProperties.getDesc());
System.out.println(woniuProperties.getHobby());
}
}
Hello控制层更新:
package com.hkx.demo.controller;
import com.hkx.demo.service.ConfigTestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Hello {
@Autowired
ConfigTestService configTestService;
@GetMapping("/hello")
public String hello(){
return "hello woniurunfast";
}
@GetMapping("/test/value")
public void testValue(){
configTestService.testvalue();
}
@GetMapping("/test/configclass")
public void testConfigClass(){
configTestService.testConfigClass();
}
}
浏览器调用
http://localhost:8080/test/configclass
结果: