首页>代码>Spring Boot演示@ConfigurationProperties标注实现自定义配置属性的实例>/configuration-properties/src/main/java/com/memorynotfound/springboot/ApplicationProperties.java
package com.memorynotfound.springboot;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

@Validated
@Configuration
@ConfigurationProperties("app")
public class ApplicationProperties {

    @Valid
    @NotNull
    private Cache cache;
    @Valid
    @NotNull
    private Cors cors;
    @Valid
    @NotNull
    private Site site;


    public static class Cache {
        @Max(1000)
        private Integer ttl;
        @Max(3600)
        private Long maxEntries;

        public Integer getTtl() {
            return ttl;
        }

        public void setTtl(Integer ttl) {
            this.ttl = ttl;
        }

        public Long getMaxEntries() {
            return maxEntries;
        }

        public void setMaxEntries(Long maxEntries) {
            this.maxEntries = maxEntries;
        }

        @Override
        public String toString() {
            return "Cache{" +
                    "ttl=" + ttl +
                    ", maxEntries=" + maxEntries +
                    '}';
        }
    }

    public static class Cors {
        private List<String> allowedOrigins;
        private String[] allowedMethods;
        private List<String> allowedHeaders;
        private Boolean allowCredentials;
        private Integer maxAge;

        public List<String> getAllowedOrigins() {
            return allowedOrigins;
        }

        public void setAllowedOrigins(List<String> allowedOrigins) {
            this.allowedOrigins = allowedOrigins;
        }

        public String[] getAllowedMethods() {
            return allowedMethods;
        }

        public void setAllowedMethods(String[] allowedMethods) {
            this.allowedMethods = allowedMethods;
        }

        public List<String> getAllowedHeaders() {
            return allowedHeaders;
        }

        public void setAllowedHeaders(List<String> allowedHeaders) {
            this.allowedHeaders = allowedHeaders;
        }

        public Boolean getAllowCredentials() {
            return allowCredentials;
        }

        public void setAllowCredentials(Boolean allowCredentials) {
            this.allowCredentials = allowCredentials;
        }

        public Integer getMaxAge() {
            return maxAge;
        }

        public void setMaxAge(Integer maxAge) {
            this.maxAge = maxAge;
        }

        @Override
        public String toString() {
            return "Cors{" +
                    "allowedOrigins=" + allowedOrigins +
                    ", allowedMethods=" + Arrays.toString(allowedMethods) +
                    ", allowedHeaders=" + allowedHeaders +
                    ", allowCredentials=" + allowCredentials +
                    ", maxAge=" + maxAge +
                    '}';
        }
    }

    public static class Site {
        @NotNull
        private String name;
        @NotNull
        private String domain;

        public String getName() {
            return name;
        }

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

        public String getDomain() {
            return domain;
        }

        public void setDomain(String domain) {
            this.domain = domain;
        }


        @Override
        public String toString() {
            return "Site{name=" + name + ",domain:" + domain + "}";
        }
    }

    public Cache getCache() {
        return cache;
    }

    public void setCache(Cache cache) {
        this.cache = cache;
    }

    public Cors getCors() {
        return cors;
    }

    public void setCors(Cors cors) {
        this.cors = cors;
    }


    public Site getSite() {
        return site;
    }

    public void setSite(Site site) {
        this.site = site;
    }


    @Override
    public String toString() {
        return "ApplicationProperties{" +
                "cache=" + cache +
                ", cors=" + cors +
                ",site:" + site + "}";
    }
}
最近下载更多
最代码官方  LV167 2020年12月20日
最近浏览更多
444105047  LV6 2023年7月28日
微信网友_6522007290040320  LV2 2023年6月16日
zsf0061  LV8 2023年3月14日
hzhsh0223  LV18 2023年2月3日
yohohero  LV1 2023年1月14日
lbnlbn 2022年12月26日
暂无贡献等级
lewiszz  LV2 2022年12月11日
329512801  LV28 2021年6月23日
lbwnblbwnblbwnb  LV7 2021年6月21日
别碰我被窝  LV9 2021年6月1日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友