SpringBoot获取自定义参数

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> SpringBoot获取自定义参数

author:阿风/Alan

公众号:阿风的JAVA

无论是properties格式还是yml的配置文件格式,其获取参数是一样的

yml的格式语法请参考http://www.ruanyifeng.com/blog/2016/07/yaml.html

这里以yml文件格式举例:

application.yml


student:
  name: "张三"
  age: 18
  sex: "男"

获取参数

第一种:

通过@Value注解


@Controller
public class HelloWorldController {

    @Value("${student.name}")
    private String name; 

    @GetMapping("/hello")
    @ResponseBody
    public String hello(){
        System.out.println(Arrays.asList(stus));
        return sname;
    }
}

第二种:

通过@ConfigurationProperties(prefix = "student")与@Autowired结合使用。prefix 省略的前缀名称

  • student.class
    //这里以po类距离四,但是要想使用ConfigurationProperties注入参数 需要提供get、set方法
    package com.lifeibai.po;
    
    

    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;

    @Component
    @ConfigurationProperties(prefix = “student”)
    public class Student {
      private String name;
      private int age;
      private String sex;

      public String getName(){
          return name;
      }

      public void setName(String name){
          this.name = name;
      }

      public int getAge(){
          return age;
      }

      public void setAge(int age){
          this.age = age;
      }

      public String getSex(){
          return sex;
      }

      public void setSex(String sex){
          this.sex = sex;
      }

      @Override
      public String toString(){
          final StringBuilder sb = new StringBuilder(“Student{“);
          sb.append(“name=’”).append(name).append(‘’’);
          sb.append(“, age=”).append(age);
          sb.append(“, sex=’”).append(sex).append(‘’’);
          sb.append(‘}’);
          return sb.toString();
      }
    }

    @Controller
    public class HelloWorldController {
    
      @Value("${student.name}")
      private String name;
      @Autowired
      private Student student;
    
      @GetMapping("/hello")
      @ResponseBody
      public String hello(){
          return student.toString();
      }
    }
    
  • 
    @Controller
    public class HelloWorldController {
    
      @Value("${student.name}")
      private String name;
      @Autowired
      private Student student;
    
      @GetMapping("/hello")
      @ResponseBody
      public String hello(){
          return student.toString();
      }
    }
    

    第三种:

    使用  @Autowired private Environment env;属性 来获取参数    

    
    @Controller
    public class HelloWorldController {
    
        @Autowired
        private Environment env;
    
        @GetMapping("/hello")
        @ResponseBody
        public String hello(){
    
            return env.getProperty("student.name");
        }
    }
    
    

    文章如有错误,请您一定指出,感谢之至!
    如果你有不同的见解,欢迎留言
    图片可能来源于网络,如有侵权请告知。
    文章中的资料有时忘记书写来源,如果需求请告知
    最后:关注一下呗

    长按二维码识别关注

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> SpringBoot获取自定义参数


     上一篇
    【加精】最新官方版的SpringBoot 整合 Dubbo 【加精】最新官方版的SpringBoot 整合 Dubbo
    上次的那个springboot和dubbo的整合版本中,dubbo的版本是2.5.3,它的Service注解和事务不能同时使用,会造成扫描失效,2.6.2的dubbo版本已经纠正了此不便,官方也给出了与springboot整合的quic
    下一篇 
    springboot的注解 springboot的注解
    文章大部分来源https://blog.csdn.net/weixin_41662670/article/details/79649899 声明bean的注解 注解描述 |------ @Component没有明确的对应 @Servic