Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类:
1. 使用@Component注解标记工具类StatisticsUtils:
2. 使用@Autowired(@Autowired和@Resource的区别不再介绍)注入我们需要的bean:
3. 在工具类中编写init()函数,并使用@PostConstruct注解标记工具类,初始化Bean:
public class StatisticsUtils {
@Autowired
private IdeaMemberDao ideaMemberDao;
@Autowired
private ProjectMemberDao projectMemberDao;
@Autowired
private IdeaMgrDao ideaMgrDao;
@Autowired
private ProjectMgrDao projectMgrDao;
public static StatisticsUtils statisticsUtils;
@PostConstruct
public void init() {
statisticsUtils = this;
statisticsUtils.ideaMemberDao = this.ideaMemberDao;
statisticsUtils.projectMemberDao = this.projectMemberDao;
statisticsUtils.ideaMgrDao = this.ideaMgrDao;
statisticsUtils.projectMgrDao = this.projectMgrDao;
}
}
4. 然后我们在StatustucsUtils.getIdeaParticipateNum函数中,就可以使用到我们注入的ideaMemberDao了
public static Integer getIdeaParticipateNum(){
return statisticsUtils.ideaMemberDao.NumOfIdea();
}