Warum sollten Sie bei Verwendung von AspectJ @Component over @Configurable verwenden.Konfigurierbar gegen Komponente mit Feder und AspectJ
Ich habe Spring und AspectJ Setup für @Transactional Unterstützung, Aspekte auf Selbst-Aufruf und Injektion in JPA-Entitäten. Das funktioniert großartig.
Ich verwende @Component für die meisten Klassen, die Injektion benötigen, und damit entweder in ihre Abhängigkeiten injiziert. Oder wenn ich nicht kann, injiziere den ApplicationContext und benutze dann getBean() als letzten Ausweg. Und ich reserviere @Configurable nur für JPA-Entitäten (Hibernate), die eine Injektion benötigen. Ich habe auch angefangen, @Configurable für jUnit-Tests zu verwenden, um das Schreiben von Tests einfach zu machen. Das funktioniert auch super.
Aber ich bin neugierig. Wenn AspectJ nun automatisch etwas mit der @Configurable-Annotation injiziert (bejahet), unabhängig davon, wie es konstruiert wurde; getBean(), new(), @Autowired. Warum sollte ich nicht einfach @Configurable für alle meine Beans verwenden? Dann kann ich den Anwendungskontext und getBean() ganz abschaffen, und nur neue() Klassen, die ich nicht injizieren kann.
Ich weiß, dass ich keine XML-Bean-Konfiguration erwähnt habe. Ich scheue das nicht, aber dieses Projekt benötigt keine. Ich Konstruktor oder Setter injizieren die Abhängigkeiten beim Testen. sehr leicht.