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
测试结果:
第一种:


第二种:


开开心心,上班!
快快乐乐,游玩!
及时行乐!

浙公网安备 33010602011771号