Bir yönün içinde bulunan bir nesneyi enjekte etmeye çalışıyorum. Ama her zaman null döner. Bu önlemeyayı açılamıyor
<context:load-time-weaver />
<context:component-scan base-package="framework.interceptor" />
@Aspect
public class LoggingInterceptor {
@Autowired
EventLogManager eventLogManager;
.....
}
benim birim test böyle bir şeydir aşağıdaki tanım dışında yay tarafından AspectJ dolayısıyla yönetilmeyen kullanarak etki alanı nesneleri enjekte etmek kullanıldı. asa.execute() çağrıldığında LoggingInterceptor tarafından yakalanır, ancak LoggingInterceptor.eventLogManager her zaman boştur. Ama testInjection() aşağıda çalışıyor.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-dao.xml",
"classpath:applicationContext-service.xml",
"classpath:applicationContext-resources.xml",
"classpath:LoggingTest-context.xml"})
public class LoggingInterceptorTest {
@Autowired
EventLogManager eventLogManager;
@Test
public void testInjection(){
Assert.assertNotNull(eventLogManager);
}
@Test
public void testAccountSaveActionAdvice(){
AccountSaveAction asa = new AccountSaveAction();
asa.execute();
}
}
benim ApplicationContext-service.xml işe yaramadı bu
<aspectj>
<weaver>
<!-- only weave classes in this package -->
<include within="action..*" />
</weaver>
<aspects>
<!-- use only this aspect for weaving -->
<aspect name="interceptor.LoggingInterceptor" />
</aspects>
</aspectj>