Tengo problemas para lograr que AspectJ realice el trabajo de carga de una clase anotada con @configurable en mi proyecto principal. No se establecen campos y ninguno de los ajustadores se tocan.Tejido del tiempo de carga del muelle no detecta la clase anotada con @configurable
No creo que haya problemas con la configuración en sí, porque he extraído la configuración y la he probado en un proyecto de espacio aislado más pequeño. Solo por el bien, lo incluiré en esta pregunta sin embargo.
Por lo tanto, me pregunto:
- ¿Hay algo en el proyecto más grande que podría estar obstaculizando la primavera/AspectJ de detección de la esta clase en particular?
- ¿Hay alguna manera de verificar si la primavera está al tanto de la clase en las preguntas?
Y, por último, cualquier código que puedo extraer (disculpen la ofuscación):
De XML de configuración:
<context:annotation-config />
<context:spring-configured />
<context:component-scan base-package="se.isydev" />
<context:component-scan base-package="se.istools" />
<aop:aspectj-autoproxy />
<context:load-time-weaver aspectj-weaving="on" />
<context:property-placeholder location="classpath:settings.properties" />
(...)
<bean class="com.company.ClassToBeWeaved"
scope="prototype">
<property name="injectedBean" ref="injectedBean" />
</bean>
Y la propia clase:
@Configurable
public class ClassToBeWeaved {
private InjectedBean injectedBean;
@Required
public void setInjectedBean() { ... }
}
Editar :
Bueno, resulta que no funcionaba debido a una dependencia circular. Oh, deary me, me encanta trabajar en el código heredado. Aún así, mis preguntas originales permanecen.
qué entorno están ejecutando éste? LTW solo funciona en ciertos servidores de aplicaciones. – skaffman
Corrí mi sandbox justo en eclipse y la aplicación adecuada está en un WAR ejecutándose en JBoss – mikek
¿Qué versión de JBoss está ejecutando y cuál es la línea de comandos de inicio de java para él? Si JBoss es 5.x o superior, no necesita un agente específico (y eso es una diferencia con su entorno limitado, donde debe especificar el agente). –