赞
踩
静态方法是属于类的,而普通方法则属于对象,spring注入只在容器中实例化变量的,并且静态是优先于对象存在的,所以直接在静态方法中调用注入的静态变量其实是null的。要想在静态方法中使用注入的属性有两种方式。
- //1 使用@Autowired注解加到构造函数的方式
- public class QueryMgtUtils {
-
- private static QuerySuperviseRemoteService querySuperviseRemoteService;
-
- @Autowired
- public QueryMgtUtils(QuerySuperviseRemoteService querySuperviseRemoteService) {
- QueryMgtUtils.querySuperviseRemoteService = querySuperviseRemoteService;
- }
-
- public static List<ExecutionUnitReqDTO> getMgtOrg() {
- return querySuperviseRemoteService.getUnitList(new ExecutionUnitReqDTO());
- }
- }
-
-
-
- // 第二种方式使用 @PostConstruct注解,@PostConstruct在构造函数之后执行,init()方法之前执行。
- public class MgtOrgUtil {
-
- private static MgtOrgService mgtOrg;
-
- @Resource
- private MgtOrgService mgtOrgService;
-
- @PostConstruct
- private void init() {
- mgtOrg = this.mgtOrgService;
- }
-
- public static boolean checkIsLocal(String mgtOrgCode, String distLv) {
- MgtOrgBO bo = new MgtOrgBO();
- bo.setDistLv(distLv);
- bo.setMgtOrgCode(mgtOrgCode);
- List<MgtOrgBO> list = mgtOrg.queryMgtOrg(bo);
- for(MgtOrgBO mgtOrgBO: list) {
- if(mgtOrgBO.getDistLv().equals(distLv) && mgtOrgBO.getVirtualFlag() == 1 ) {
- return true;
- }
- }
- return false;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。