J'ai du mal à faire en sorte qu'AspectJ effectue du tissage de temps de chargement sur une classe annotée avec @configurable dans mon projet principal. Aucun champ n'est défini et aucun des setters n'est touché.Temps de chargement du ressort ne détectant pas la classe annotée avec @configurable
Je ne pense pas qu'il y ait des problèmes avec la configuration elle-même, car j'ai extrait la configuration et l'ai testée sur un projet de bac à sable plus petit. Juste pour le plaisir, je vais l'inclure dans cette question si.
Alors, je me demande:
- Y at-il dans le projet plus vaste qui pourrait être entravait printemps/AspectJ de détection de la cette classe?
- Y a-t-il un moyen de vérifier si le printemps est au courant de la classe en question?
Et enfin, quel que soit le code que je peux extraire (s'il vous plaît excuser l'obscurcissement):
De XML de configuration:
<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>
Et la classe elle-même:
@Configurable
public class ClassToBeWeaved {
private InjectedBean injectedBean;
@Required
public void setInjectedBean() { ... }
}
Modifier :
Eh bien, il s'avère que cela ne fonctionnait pas en raison d'une dépendance circulaire. Oh mon cher, j'aime travailler sur le code hérité. Pourtant, mes questions initiales restent.
Quel environnement vous utilisez celui-ci? LTW ne fonctionne que sur certains serveurs d'applications. – skaffman
J'ai couru mon bac à sable juste en éclipse et l'application appropriée est dans un WAR fonctionnant sur JBoss – mikek
Quelle version de JBoss exécutez-vous et quelle est la ligne de commande de démarrage java pour cela? Si JBoss est 5.x ou supérieur, vous n'avez pas besoin d'un agent spécifique (et cela diffère de votre sandbox, où vous devez spécifier l'agent). –