今天需要在utils包下写一个关于租金计算的方法,但需要调用dao层接口去查询数据库数据,大家都知道正常情况下@Autowired无法注入静态的bean,记录一下我学到的两种方法。
- 第一种
@Component
public class RentCalculationUtil {
private static RentApplyDao rentApplyDao;
private static HouseSourceDao houseSourceDao;
@Autowired
public RentCalculationUtil(RentApplyDao rentApplyDao, HouseSourceDao houseSourceDao){
RentCalculationUtil.rentApplyDao = rentApplyDao;
RentCalculationUtil.houseSourceDao = houseSourceDao;
}
}
- 第二种
public class RentCalculationUtil {
private static final RentApplyDao rentApplyDao = SpringContextHolder.getBean(RentApplyDao.class);
private static final HouseSourceDao houseSourceDao = SpringContextHolder.getBean(HouseSourceDao.class);
}
我推荐第二种,第一种Idea会在形参下面划红色下划线,是idea本身的问题,虽然说可以调,但是作为一名拥有强迫症且懒的程序员,我实在难以忍受,第二种代码也更加简单!!!