Время загрузки не работает в доменном объекте
У меня есть сценарий, где мне нужно получить доступ к пружинным управляемым bean-компонентам в моем доменном объекте (то есть объект, созданный с новым оператором). Я много искал и обнаружил, что это можно сделать, используя Weaving Time Load, предоставляемый aspectJ. Я сделал все конфигурации для вышеизложенного, насколько мне известно. Я новичок в аспекте J. Ниже приведены мой код и файлы конфигурации.
Доменный класс,
package test.components;
import hibSERVICES.NounHeader.NounHeaderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
@Configurable
public class TestLoadTimeWeaving {
@Autowired
private NounHeaderService nounHeaderService;
public void hello(){
nounHeaderService.findByPrimaryKey(0L);
}
}
контроллер,
пакет test.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping(value = "/testController.do")
public class TestController{
@RequestMapping(params = "todo=onLoad", method = {RequestMethod.POST, RequestMethod.GET})
public void onLoad(HttpServletRequest request, HttpServletResponse response){
TestLoadTimeWeaving testLoadTimeWeaving = new TestLoadTimeWeaving();
testLoadTimeWeaving.hello();
}
}
applicationContext.xml
<?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:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:spring-configured />
<context:annotation-config />
<context:component-scan base-package="test" />
<context:load-time-weaver aspectj-weaving="on"/>
<bean lass="org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect" factory-method="aspectOf"/>
aop.xml,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE aspectj PUBLIC
"-//AspectJ//DTD//EN"
"http://www.aspectj.org/dtd/aspectj_1_5_0.dtd">
<aspectj>
<weaver>
<exclude within="*..*CGLIB*" />
</weaver>
</aspectj>
Я написал -javaagent:c:\spring-agent-2.5.6.jar в качестве аргумента виртуальной машины
Использование следующих jar-файлов для поддержки LTW и aspectJ,
- aspectjrt-1.5.4.jar
- весенне-агент-2.5.6.jar
- весна-aspect.jar
- aspectjWeaver-1.5.4.jar
- весна-2.5.6.jar
Все другие пружинные зависимости работают нормально, только зависимости, которые вставлены в доменные объекты (т.е. объект, созданный с помощью нового оператора), не работают, т.е. я получаю нулевое значение для этих зависимостей.
Пожалуйста, помогите. Заранее спасибо.