【Spring Boot】Spring Boot之自定义配置参数绑定到Java Bean

一、@Value方式

1.我的配置文件:application-dev.yml

# 自定义项目配置
startproject:
  pro1: 11
  pro2: 11
  pro3: 11
  pro4: 11
  lists:
    - ‘1‘
    - ‘2‘
    - ‘3‘
  maps:
    key1: 1
    key2: 2
    key3: 3

2.我的Java Bean

/**
 * @author zhangboqing
 * @date 2018/9/18
 */
@Data
@Configuration
public class CustomCode {

    //====================== 项目配置 ============================

    @Value("${startproject.pro1}")
    private String pro1;
    @Value("${startproject.pro2}")
    private String pro2;
    @Value("${startproject.pro3}")
    private String pro3;
    @Value("${startproject.pro4}")
    private String pro4;
    @Value("${startproject.lists[0]},${startproject.lists[1]},${startproject.lists[2]}")
    private List<String> lists;
//    @Value("${startproject.maps2}") 无法获取到
//    private Map<String,Object> maps;

}

二、@ConfigurationProperties方式 (推荐)

1.我的配置文件:application-dev.yml

# 自定义项目配置startproject:  pro1: 11  pro2: 11  pro3: 11  pro4: 11  lists:    - ‘1‘    - ‘2‘    - ‘3‘  maps:    key1: 1    key2: 2    key3: 3  maps2: {key1: 1,key2: 2,key3: 3}

2.我的Java Bean

/**
 * @author zhangboqing
 * @date 2018/9/18
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "startproject")
public class CustomCode {

    //====================== 项目配置 ============================

    private String pro1;
    private String pro2;
    private String pro3;
    private String pro4;

    private List<String> lists;
    private Map<String,Object> maps;
    private Map<String,Object> maps2;

}

原文地址:https://www.cnblogs.com/756623607-zhang/p/11192217.html

时间: 2024-11-08 17:50:48

【Spring Boot】Spring Boot之自定义配置参数绑定到Java Bean的相关文章

SpringBoot(五):@ConfigurationProperties配置参数绑定

在springmvc或其他ssh框架中如果我们要实现一个配置参数的加载,需要使用代码实现读取properties文件等操作,或者需要使用其他属性@value(name="username")等配置操作.但是在springboot中就比较简单操作: 1)自定义配置参数绑定:通过使用@ConfigurationProperties和@Component注解自定义参数配置类,之后程序启动时将自动加载application.properties配置文件中的对应的配置项: 2)第三方组件类的配置

Dubbo源码分析(三):自定义Schema--基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)

在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙.一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担.Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置一般需要以下步骤: 设计配置属性和JavaBean 编写XSD文件 编

针对Properties中实时性要求不高的配置参数,用Java缓存起来

Properties常用于项目中参数的配置,当项目中某段程序需要获取动态参数时,就从Properties中读取该参数,使程序是可配置的.灵活的. 有些配置参数要求立即生效,有些则未必: 一.实时性要求非常高.项目中,有些参数要求实时性非常高,即在系统运行中,IT人员修改了该参数值,该新参数值要求立即在程序中生效: 二.实时性要求不高.其实,并不是每个配置参数都要求实时性那么高,有些配置参数基本不会在项目运行当中修改,或即使在运行当中修改,也只要求其在下一次项目启动时生效. 针对第二种情况,鉴于程

读取xml文件中的配置参数实例_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 paras.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

spring学习(二十九)--参数绑定注解

package springAnnotions; import java.util.Map; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springfram

spring 3.2 自定义参数绑定--日期格式转换器

springmvc配置文件 <!-- 代替org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping 和org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter --> <mvc:annotation-driven conversion-service="conver

网站前端_KindEditor.基础入门.0001.KindEditor_3.4.2配置参数?

初始方式: 说明: 在快速入门中使用KE.show({ .. .})来初始化了一个编辑器,具体进入js/kindeditor.js下可以看到KE对象下的show方法先调用了KE的init方法然后又调用了其event事件对象的ready方法,内部其实是调用的KE的create方法,传递的参数为args的id属性,所以可通过2种方式来初始化编辑器 # 方式一 : # 方式二 : 注意: 无论使用哪种方式初始化编辑器,都需要传递配置对象{ ... },配置对象中id属性是必须配置的,其它的属性默认采用

Java bean与Spring、Spring MVC关系

Java Bean Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定.这些约定包括getXxx.setXxx.isXxx.addXxxListener.XxxEvent等.遵守上述约定的类可以用于若干工具或库. 举个例子,假如有人要用Java实现一个单向链表类,可能会这样写: 上述实现为了能够快速获取链表的大小,把链表大小缓存在size变量中.用法如下: JavaIn

spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(value = { "/actor_details" }, method = { RequestMethod.POST }) @ResponseBody public ResultObject actorDetails(@RequestBody ActorDetailsRequest req)