Java 簡單類引用spring bean類/讀取配置文件
在開發過程中,我們經常會遇到有需要在簡單類中使用 spring bean 的需求,我在項目中遇到了這樣的需求:我寫了一個配置文件,通過 @PropertySource 讀取了一個配置,然後要在一個簡單類中使用用,初始化這個簡單類的某一字段。
代碼如下:
@Component
@PropertySource(value = "classpath:forward.yml",factory = YamlConfigFactory.class)
@ConfigurationProperties(prefix = "forward")
@Data
public class ForwardServerConfig {
public ForwardServer server;
}
@Component
public class SystemConfig {
public static AlarmFileConfig alarmConfig;
public static ForwardServerConfig forwardConfig;
@Autowired
public void setAlarmConfig(AlarmFileConfig alarmConfig) {
SystemConfig.alarmConfig = alarmConfig;
}
@Autowired
public void setForwardConfig(ForwardServerConfig forwardConfig) {
SystemConfig.forwardConfig = forwardConfig;
}
}
然後就可以在簡單類中使用
ForwardServer server = SystemConfig.forwardConfig.server;
需要注意的點:
- 中轉類 systemConfig 的 set 方法不能加static,自動生成的 getset 方法是會帶上 static 關鍵字的。
另外你的各種服務類,代理類,只要是spring管理的類都可以這樣用哦。