首页>代码>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 + "}";
    }
}
最近下载更多
最代码官方  LV168 2020年12月20日
最近浏览更多
srmess  LV4 2024年12月31日
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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友