springに@Autowiredを使って注入できない場合を解決します.
1215 ワード
springに@Autowiredを使って注入できない場合を解決します.
問題の概要:
springフレームを使用する過程で、よくこの2つのケースがあります.1、スキャンしたカバン以外に使用する場合は、mapper 2、同じディレクトリの下の二つのcontrollerまたは二つのserviceを使用して、@Autowired注解を使用してmapperまたはserviceに注入する場合、その一つは注入できますが、もう一つは空です.
理由:(ここでは第二種のみ)
ビルの主人は調整した後で発見して、フレームのスタートの過程の中で、この注釈は実は注入したことがあったので、注入したことがないのではなくて、ただその後どこかで消しました.
ソリューション
ここではビル主が解決策を示しています.本当に注入できない場合、ツール類の方法で注入できます.
使用時には、このツールクラスを通じて直接に呼び出すことができます.
問題の概要:
springフレームを使用する過程で、よくこの2つのケースがあります.1、スキャンしたカバン以外に使用する場合は、mapper 2、同じディレクトリの下の二つのcontrollerまたは二つのserviceを使用して、@Autowired注解を使用してmapperまたはserviceに注入する場合、その一つは注入できますが、もう一つは空です.
理由:(ここでは第二種のみ)
ビルの主人は調整した後で発見して、フレームのスタートの過程の中で、この注釈は実は注入したことがあったので、注入したことがないのではなくて、ただその後どこかで消しました.
ソリューション
ここではビル主が解決策を示しています.本当に注入できない場合、ツール類の方法で注入できます.
@Component // spring
public class AbnormalRateUtil {
//
private static AbnormalRateUtil abnormalRateUtil;
// mapper
@Autowired
private InterFaceInfoMapper interFaceInfoMapper;
@PostConstruct // bean
private void init() {
abnormalRateUtil = this;
abnormalRateUtil.interFaceInfoMapper=this.interFaceInfoMapper;
// interFaceInfoMapper
}
// get
public static AbnormalRateUtil getAbnormalRateUtil() {
return abnormalRateUtil;
}
// get
public static InterFaceInfoMapper getInterFaceInfoMapper() {
return abnormalRateUtil.interFaceInfoMapper;
}
}
呼び出し方式使用時には、このツールクラスを通じて直接に呼び出すことができます.
List ruleList=AbnormalRateUtil.getInterFaceInfoMapper().findRuleById(id);