SpringBoot 配置注入方式
注入方式有两种
1、@Vlaue注解方式进行注入
2、@Autowired 方式注入
示例
Application.yml
spring: # profiles: # active: prod application: name: caicai-spring-study server: port: 8080 servlet: context-path: /Springboot-caicai caicai: Springboot: name: speed-test_spring_boot version: 1.0.2
第一种方式进行注入示例:
第二种方式,我们需要先定义一个配置文件,里面配置字段与注入的变量的名称保持一致
package com.caicai.springboot.study.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /* * Springboot第二种方式的注解 * * */ @Data //获取get set 方法 @Component //表示该方法为javabean @ConfigurationProperties(prefix = "caicai.springboot") public class getnameversionconfig { private String name; private String version; }
完整代码:
controller
package com.caicai.springboot.study.controller; import com.caicai.springboot.study.config.getnameversionconfig; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.SpringBootCondition; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /* * Test controller * * */ @Slf4j @RestController //反序列化数据、序列化数据 @RequestMapping("/Springboot") public class insert_controller { //第一种@Value 注解的方式进行注解 注意引用参数要使用${} @Value("${caicai.Springboot.name}") private String name; @Value("${caicai.Springboot.version}") private String version; //第二种配置方式 @Autowired private getnameversionconfig getnameversionconfig; // private final com.caicai.springboot.study.config.getnameversionconfig getnameversionconfig; // public insert_controller(getnameversionconfig getnameversionconfig) { // this.getnameversionconfig = getnameversionconfig; // } /* * * 第一种方式注入 * * http://127.0.0.1:8080//Springboot-caicai/Springboot/conf_res1 * * */ @GetMapping("/conf_res1") public void res(){ log.info("res-info: {},{}",version,name); } /* * 第二种注入方式 * http://127.0.0.1:8080//Springboot-caicai/Springboot/conf_res2 * */ @GetMapping("/conf_res2") public void res2(){ log.info("res_info2 {},{}",getnameversionconfig.getName(),getnameversionconfig.getVersion()); } }
config
package com.caicai.springboot.study.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /* * Springboot第二种方式的注解 * * */ @Data //获取get set 方法 @Component //表示该方法为javabean @ConfigurationProperties(prefix = "caicai.springboot") //这里的 prrfix = "所有字母必须都是小写" public class getnameversionconfig { private String name; private String version; }
application.yml
spring: # profiles: # active: prod application: name: caicai-spring-study server: port: 8080 servlet: context-path: /Springboot-caicai caicai: Springboot: name: speed-test_spring_boot version: 1.0.2
测试结果:
第一种:
第二种:
开开心心,上班!
快快乐乐,游玩!
及时行乐!