Ben senin IDE yapıyor varsayalım derleme zamanı dokumayı devre dışı bırakmak ve ayrılmış AspectJ'yi testlerinde dokuma yük zamanı kullanabilirsiniz.
Yükleme süresi dokumasını etkinleştirmek için bir javaagent'i bir JVM parametresi olarak sağlamanız gerekir.
Bir örnek:
-javaagent:lib/spring-dependencies/spring-agent.jar
Diğer değişiklikler yüklemek anına dokuma Ayrıca klasörde üzerinde META-INF bir aop.xml dosyasını sağlaması gerekir
derleme zamanında hareket claspath. Benim iz Örneğin , bu şuna benzer:
<!DOCTYPE aspectj PUBLIC
"-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver>
<!-- only weave classes in this package -->
<include within="aspects.trace.demo.*" />
</weaver>
<aspects>
<!-- use only this aspect for weaving -->
<aspect name="aspects.trace.TraceAspect" />
</aspects>
</aspectj>
Eğer TraceAspect sınıf demo paketindeki tüm sınıfları ile dokunan olacağını görebilirsiniz Bu yapılandırmada. aynı zamanda, bir yük-zaman dokumacı elemanı içerir dışında yükleme zamanı dokuma
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="traceAspect" class="aspects.trace.TraceAspect"
factory-method="aspectOf"/>
<context:load-time-weaver />
</beans>
konfigürasyon dosyası ile
Yay konfigürasyonu hemen hemen derleme yapılandırma dosyası ile aynıdır.
Umarım bu yardımcı olur!
Test senaryounuzda, bu özel testler için ayrı bir applicationContext kullanmak mümkün mü, bu bağlamda AspectJ desteğini yorumlayabiliyorsunuz? –
Teşekkürler Vladimir, Aspect IT testimin yönü-it-config'ım var, fakat JUnit testi için sadece dokumayı açmak için başka bir versiyon oluşturmak istemiyorum. Espen'in çözümünü deneyeceğim ve nasıl gittiğini göreceğim. – maxx