import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Data
@Component
@ConfigurationProperties(prefix = "service")
public class ServicePropertiesUtil {
/*
配置文件属性
*/
private String appUri;
private String appSysUserInfoUrl;
/*
静态变量
*/
public static String serviceUri;
public static String sysUserInfoUrl;
/**
* 在构造函数调用后立即执行init(),将属性值设置给静态变量,可以在程序的任何地方直接访问
*/
@PostConstruct
public void init() {
serviceUri = appUri;
sysUserInfoUrl = appSysUserInfoUrl;
}
使用 @ConfigurationProperties
注解,配合 @Component
将属性类作为组件托管到 Spring 容器中,可以在应用程序中直接注入Bean并通过GET方法获取这些属性;有@PostConstruct
的方法在构造函数调用后立即执行,将属性值设置给了静态变量,这样可以在应用程序的任何地方直接访问这些属性,非常优雅。