वसंत का उपयोग करके मुझे एनोटेटेड पहलू वर्ग पर निर्भरता इंजेक्शन करने में कुछ समस्याएं आई हैं। कैश सेवा को वसंत संदर्भ के स्टार्टअप पर इंजेक्शन दिया जाता है, लेकिन जब बुनाई होती है, तो यह कहता है कि कैश सेवा शून्य है। तो मुझे वसंत संदर्भ को मैन्युअल रूप से ऊपर उठाने और वहां से बीन प्राप्त करने के लिए मजबूर होना पड़ता है। क्या इसके बारे में जाने का कोई और तरीका है?वसंत निर्भरता एक एनोटेटेड पहलू इंजेक्शन
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import com.mzgubin.application.cache.CacheService;
@Aspect
public class CachingAdvice {
private static Logger log = Logger.getLogger(CachingAdvice.class);
private CacheService cacheService;
@Around("execution(public *com.mzgubin.application.callMethod(..)) &&"
+ "args(params)")
public Object addCachingToCreateXMLFromSite(ProceedingJoinPoint pjp, InterestingParams params) throws Throwable {
log.debug("Weaving a method call to see if we should return something from the cache or create it from scratch by letting control flow move on");
Object result = null;
if (getCacheService().objectExists(params))}{
result = getCacheService().getObject(params);
} else {
result = pjp.proceed(pjp.getArgs());
getCacheService().storeObject(params, result);
}
return result;
}
public CacheService getCacheService(){
return cacheService;
}
public void setCacheService(CacheService cacheService){
this.cacheService = cacheService;
}
}
तो बस मेरे पहलू वर्ग में पहलूऑफ विधि को सेट करने से यह ठीक लगता है। निश्चित नहीं है कि यह क्यों काम कर रहा है क्योंकि मैंने देखा है कि अधिकांश अन्य सुधारों में नहीं है। बीटीडब्ल्यू ने स्प्रिंग-पहलुओं और कुछ अन्य लोगों के माध्यम से @ कॉन्फिगर करने योग्य कोशिश की लेकिन कोई भी पहलू सिंगलटन को ठीक से बीन को तार नहीं लग रहा था। – PJH
यदि आप क्लासिक पहलू पहलू लिखते हैं, तो एएसपीसीओएफ स्थिर एक्सेसर पहलू संकलक द्वारा उत्पन्न होता है: –