如下:
//第一步:需要將工具類注入到容器中 @Component public class RuleUtils { //第二部注入 @Autowired private BsVehicleInfoServiceImpl bsVehicleInfoImpl; @Autowired private BsAlarmInfoMapper alarmInfoMapper; //第三步 建一個靜態的本類 private static RuleUtils ruleUtils; //第四步 初始化 @PostConstruct public void init() { ruleUtils = this; } public static BsAlarmInfo isInandoutRule(String[] ms){ //第五步 這里用類的屬性去進行調用 ruleUtils.bsVehicleInfoImpl.add(ms); }
講解一下代碼編寫的思路:
1.容器去管理我們的組件
2.組件中我們先執行的是靜態方法,因為我們的方法是靜態方法所以會先執行,但是這個時候我們@autowired注入的組件還沒有被注入進來,所以此時會是null
3.靜態方法執行完之后是執行我們的構造器
4.構造器之后是我們@autowired的組件被注入進來
5.然后執行@postconstruct標注的方法(PostConstruct在構造函數之后執行,只會執行一次)方法中我們對組件進行初始化,因為這時候service/dao已經被注入進來,所以我們將注入好的類賦值一下
6.最后我們用類的屬性去調用方法就可以了。
7.Constructor >> @Autowired >> @PostConstruct