一、 利用@ConfigurationProperties 读取配置 文件
1、Yml自定义配置信息
esc: ip: 192.168.23.1 port: 9898
2、信息读取配置类
package com.mangoubiubiu.conf; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Data//lombok注解 自动生成get set 方法 @ConfigurationProperties(prefix = "esc") @Component public class EscProperties { private String ip; private String port; }
@Data //lombok的一个注解 自动生成get set方法
@ConfigurationProperties prefix 配置信息的前缀
@Component 只要开启了包扫描 Component-scan 或者在启动类下 被此注解标注的类都会被注入到ioc容器里面
3、Controller 测试类
package com.mangoubiubiu.controller; import com.mangoubiubiu.conf.EscProperties; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @Api(tags = "测试模块") @RestController @RequiredArgsConstructor public class TestController { final EscProperties escProperties; @Value("${esc.ip}") private String ip; @Value("${esc.port}") private String port; @GetMapping("/get/userProperties") public ResponseEntity<String> getEscProperties(){ return ResponseEntity.ok("ip:" + escProperties.getIp()); } @GetMapping("/get/getByValue") public ResponseEntity<String> getByValue(){ return ResponseEntity.ok("ip:" + ip); } }
@RequiredArgsConstructor lombok的注解 标注了 此注解 获取相关bean对象时 不需要 再用@Autowird 进行依赖注入
只需要 写
final EscProperties escProperties;
@Value //也可以将配置信息 读取出来, 单个读取
4、测试
@Value
@ConfigurationProperties
发现 都可以将配置 信息 读取 出来 。