java - Spring:如何在 Spring 配置中注入(inject) ENUM?

标签 java spring enums

我有一个 ENUM 作为

package com.myorg.sparrow.s3Environment;

import javax.annotation.Nonnull;

public enum DocumentType {
    Document("document/", ".xml.gz", "binary/octet-stream", "gzip", true);

    private final String path;
    private final String suffix;
    private final String contentType;
    private final String contentEncoding;
    private final Boolean compress;

    private DocumentType(@Nonnull final String path, @Nonnull final String suffix,
                         @Nonnull final String contentType, @Nonnull final String contentEncoding,
                         @Nonnull final Boolean compress) {
        this.path = path;
        this.suffix = suffix;
        this.contentType = contentType;
        this.contentEncoding = contentEncoding;
        this.compress = compress;
    }

    @Nonnull
    public String getPath() {
        return path;
    }

    @Nonnull
    public String getSuffix() {
        return suffix;
    }

    @Nonnull
    public String getContentType() {
        return contentType;
    }

    @Nonnull
    public String getContentEncoding() {
        return contentEncoding;
    }

    @Nonnull
    public Boolean isCompress() {
        return compress;
    }
}

我想在 Spring 配置文件中注入(inject) DocumentType.Document 的这个值

   <bean id="s3Service" class="com.myorg.sparrow.business.xml.persist.S3Service">
        <constructor-arg ref="awsCredentials" />
        <constructor-arg value="**DocumentType.DOCUMENT**" /> // how do I inject it here?
        <constructor-arg value="${com.myorg.sparrow.s3EnvironmentConfiguration.S3EnvironmentConfigurator-destBucketName}" />
    </bean>

如何将这个值注入(inject)

<constructor-arg value="**DocumentType.DOCUMENT**" /> // how do I inject it here?

我是 Spring 框架的新手,不知道如何实现这一点

谢谢

最佳答案

 <bean id="s3Service" class="com.myorg.sparrow.business.xml.persist.S3Service">
        <constructor-arg ref="awsCredentials" />
        <constructor-arg value="Document" /> // We love Spring because it is simpler than we expect
        <constructor-arg value="${com.myorg.sparrow.s3EnvironmentConfiguration.S3EnvironmentConfigurator-destBucketName}" />
    </bean>

关于java - Spring:如何在 Spring 配置中注入(inject) ENUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030974/

相关文章:

java - BigDecimal/ArrayList 需要新的区域设置

java - 我无法创建自定义的Spring Boot启动器

java - Spring Boot-无法使用@Value检索application.yml变量值

java - 使用两个事务管理器和 session 工厂以及 spring 和 hibernate 注释

c# - 任何人都知道一种快速获取枚举值自定义属性的方法吗?

javascript - 无法通过 ngSwitch 正确使用枚举

java - (架构)为 angular2 应用程序抓取数据。直接检查MongoDB还是我的Java REST?

java - AES128 解密 :javax. crypto.badpaddingexception pad block 已损坏

python - 命名参数可以与 Python 枚举一起使用吗?

java - 如何使用 Java Play Framework 2.0.3 和 easyXDM 获取 PUT 请求数据