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管理的类都可以这样用哦。