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类
image
写入:

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接口验证
image

    @Autowired
    ConfigTestService configTestService;

    @GetMapping("/test/value")
    public void testValue(){
        configTestService.testvalue();
    }

浏览器调用
http://localhost:8080/test/value
结果:
image

03SpringBoot关于@ConfigurationProperties注入属性

创建config包并创建WoniuProperties类
image
写入:

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
结果:
image

posted @ 2021-06-26 19:11  woniurunfast  阅读(61)  评论(0编辑  收藏  举报