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

  

 测试结果:

第一种:

 

 

 

 

第二种:

 

 

 

 

 


posted @ 2021-01-25 22:13  菜菜920  阅读(652)  评论(0编辑  收藏  举报