业务场景:
有的时候需要在工具类中依赖Spring的bean,而且还想通过静态方法对外提供,实现方式如下:
方式一:
@Component
public class DbMapperUtils {
private static Environment env;
private static Map propsMap = new HashMap<>();
public static String getPropVal(String propKey) {
if (!propsMap.containsKey(propKey)) {
propsMap.put(propKey, env.getProperty(propKey));
}
return propsMap.get(propKey);
}
@Resource
public void setEnv(Environment env) {
DbMapperUtils.env = env;
}
}
方式二:
@Component
public class DbMapperUtils {
@Resource
private Environment environment;
private static Environment env;
private static Map propsMap = new HashMap<>();
@PostConstruct
public void beforeInit() {
env = environment;
}
public static String getPropVal(String propKey) {
if (!propsMap.containsKey(propKey)) {
propsMap.put(propKey, env.getProperty(propKey));
}
return propsMap.get(propKey);
}
}
暑期编程PK赛
得CSDN机械键盘等精美礼品!


