1. 程式人生 > >spring 通過註解實現工具類註入Service方法

spring 通過註解實現工具類註入Service方法

註解

在開發過程中,我們經常有碰到工具類裏面,要執行CRUD操作,需要調用到Service實現類,這時可以通過下述方法來得到。

1註入@Component

在持久層、業務層和控制層中,分別采用@Repository、@Service和@Controller對分層中的類進行凝視;而用@Component對那些比較中立的類進行凝視。
【如下圖:@Repository、@Service,@Controller,@Component在同一路徑下,分別對不同類型的類進行凝視】

技術分享圖片

2註入@PostConstruct

通過@PostConstruct 和 @PreDestroy 方法 實現初始化和銷毀bean之前進行的操作。

通過 步驟1:定義一個static 的工具類參數,步驟2 在用 @PostConstruct初始化中,把該靜態參數實例化

```
@Component
public class SMSUtils {

@Autowired
private ISmsService smsService;  //添加所需service的私有成員【不能加static,不然smsService會等於null,因為static方法是先於對象創建之前就已經加載的方法,先於構造執行,是屬於類的方法】
private static SMSUtils smsUtils; //  步驟1  靜態初使化 一個工具類  這樣是為了在spring初使化之前

public static final String SMS_PHONE_CODE = "xxxxx"; 
public static final String SMS_REG_SUCCESS = "yyyyyy"; 

@PostConstruct
public void init() {
    smsUtils = this;
    smsUtils.smsService = this.smsService; //步驟2 初使化時將已靜態化的testService實例化,即可以使用 smsUtils.smsService.smsServicelai 來調用service服務
}

//發送短信驗證碼 params 請嚴格按照模板輸出的字段順序來
public static void sendSms(String phone, String[] params, String templateCode) {
    SmsResponse smsResponse = smsUtils.smsService.sendSms( phone, jsonStr, templateCode );
}

}

spring 通過註解實現工具類註入Service方法