SpringbootプロジェクトのAutowired注記はサービスに注入できません.注入はnullソリューションとして表示されます.
最近if elseを置き換える工場+ポリシーモードを書きました.前の記事を参照してください.書き終わったばかりの頃はこのように注入されたserviceでしたが、私がテストしたときはserviceの値がnullであることを示していました.つまり、noticeInfoServiceの値がnullであることを示していました.sendメソッドを呼び出すと空指針異常を報告します.
その後new noticeInfoServiceのように使いにくく、注入できませんでした.後で資料を探して、このように修正してサービスの注入と呼び出しを完成します
1、@compent注記を追加し、staticの構築方法を構築し、呼び出すときにクラス名を使用する.サービス属性名メソッド名
これでサービスは正常に注入され、正常に呼び出されます.
/**
* app
* created by king on 2020/6/18 6:09
*/
@Slf4j
@Service
public class AppSendMsgServiceImpl implements ISendMsgService {
// app , , ~
@Autowired
private NoticeInfoServiceImpl noticeInfoService;
@Override
public boolean sendMsg(Object object) {
return noticeInfoService.send((NoticeRequest) object);
}
}
その後new noticeInfoServiceのように使いにくく、注入できませんでした.後で資料を探して、このように修正してサービスの注入と呼び出しを完成します
1、@compent注記を追加し、staticの構築方法を構築し、呼び出すときにクラス名を使用する.サービス属性名メソッド名
/**
* app
* created by king on 2020/6/18 6:09
*/
@Slf4j
@Component
public class AppSendMsgServiceImpl implements ISendMsgService {
// app , , ~
@Autowired
private NoticeInfoServiceImpl noticeInfoService;
private static AppSendMsgServiceImpl appSendMsgService;
@PostConstruct // @PostConstruct bean
public void init() {
appSendMsgService = this;
appSendMsgService.noticeInfoService = this.noticeInfoService;
// testService
}
@Override
public boolean sendMsg(Object object) {
// app , , ~
return appSendMsgService.noticeInfoService.send((NoticeRequest)object);
}
}
これでサービスは正常に注入され、正常に呼び出されます.