application.yml配置信息:

name: 123
demo:
  user:
    name: zhangsan
    sex: 22
    phone: 1520000000

第一种方式:通过@Value("${name}") 注解获取方式,这种一般常用与配置的数据较少的情况:

优点:单个使用方便,灵活性高

缺点:获取配置文件信息多,需要些大量的@Value,不利于开发,增加开发者的工作量


@RestController
@RequestMapping("/test")
public class TestController {
    /**
     * 通过注解的方式获取application的配置值
     */

   //创建成员变量以便方法获取
    @Value("${name}")
    private String name;

    @GetMapping("/testOne")
    public String test(){
        System.out.println("====="+name);
        
    }
}

通过运行结果可以看出我们已经通过第一种方式获取到了里面的值:

第二种方式:通过注入import org.springframework.core.env.Environment对象的形式:


@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private Environment environment;

    /**
     * 通过注入Environment的方式获取application配置的值
     * @return
     */
 
    @GetMapping("/testTwo")
    public String test2(){
        String parent =environment.getProperty("name");
        System.out.println("》》》》》》"+parent);
       
    }


}

成功打印结果:这种方式和第一种方式大同小异:
​编辑

第三种方式:通过@ConfigurationProperties(prefix = "demo.user")配置类的形式创建一个实体类,这种方式常用于 配置的数据较多,封装成一个实体类;

@Data
@Component
@ConfigurationProperties(prefix = "demo.user")
public class Demo {
    private String name;
    private String sex;
    private String phone;
}

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private Demo demo;
    /**
     * 通过创建实体类配置ConfigurationProperties的方式获取application配置的值
     * @return
     */
    @GetMapping("/testThree")
    public String test3(){
        Map<String,Object> map = new HashMap();
        map.put("name",demo.getName());
        map.put("sex",demo.getSex());
        map.put("phone",demo.getPhone());
        System.out.println("====="+map);
       
    }


}

参数较多,通过Map集合的方式接受多个参数:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐