java - 在 Spring 中指定具有值的列表的最简单方法是什么?

标签 java spring

假设我有大量值 aa bb cc dd ee ff gg 等,我需要在 spring 中将其作为构造函数传递

如果我需要配置为字符串数组,这在 spring 中很容易,因为我们可以将值指定为逗号分隔的 aa、bb、cc 等,

如果我需要配置为列表,我需要像下面那样做

<bean name="myBean" class="MyClass">
    <constructor-arg>
        <list>
            <value>aa</value>
            <value>bb</value>
            <value>cc</value>
            <value>dd</value>
        </list>
    </constructor-arg>
</bean>

当值的数量增加时,它占据了巨大的线条,看起来很丑。

有人可以帮我如何将大值作为字符串中的列表作为构造函数传递吗?

最佳答案

传递给列表的值是否来自属性文件? 如果是这样,你可以使用这样的东西:

<bean name="myBean" class="MyClass">
   <constructor-arg>
      <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToSet">
          <constructor-arg type="java.lang.String" value="${list.value}"/>
      </bean>
    </constructor-arg>
</bean> 

使用以下 .properties 文件

list.value=aa,bb,cc,dd   

如果没有,你显然可以直接通过 then :

<bean name="myBean" class="MyClass">
   <constructor-arg>
      <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToSet">
          <constructor-arg type="java.lang.String" value="aa,bb,cc,dd"/>
      </bean>
    </constructor-arg>
</bean> 

关于java - 在 Spring 中指定具有值的列表的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577547/

相关文章:

java - removeView( View )在 ViewGroup 的子类中不起作用

java - 在 Java 中,如果子类用实例子变量隐藏静态父变量,那么继承方法将使用哪个变量?

java - 无法从 Azure key 保管库获取证书 - 无法获取新的访问 token

java - 在 Spring boot 和 JPA 中更新 n-m 关系的正确方法是什么?

spring - 在tomcat同根路径下部署多个war文件

java - 如何将 String 转换为 java 中的现有标识符?

java - getFirstResult() 返回 0

java - 创建名称为 'entityManagerFactory' 的 bean 时出错

java - Spring Reactive MVC 与 @EnableAsync

java - spring-boot 中 tomcat 的默认连接池?