首页>代码>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 + "}"; } }