При использовании AspectJ, зачем использовать @Component поверх @Configurable.Конфигурируемый компонент vs с пружиной и AspectJ
У меня есть настройка Spring и AspectJ для поддержки @Transactional, аспекты самозапуска и вложения в объекты JPA. Это отлично работает.
Я использую @Component для большинства классов, которые нуждаются в инъекции, и, таким образом, либо они вставляются в их зависимости. Или, когда я не могу, вводя ApplicationContext, а затем используя getBean() в качестве последнего средства. И я резервирую @Configurable только для объектов JPA (Hibernate), которые нуждаются в инъекции. Я также начал использовать @Configurable для тестов jUnit, чтобы упростить письменные тесты. Это также отлично работает.
Но мне любопытно. Если AspectJ теперь автоматически вводит (beanifying) что-либо с @Configurable аннотацией, независимо от того, как она построена; getBean(), new(), @Autowired. Почему бы мне просто не переключиться на использование @Configurable для всех моих бобов? Тогда я могу покончить с контекстом приложения и getBean() вообще, и просто new() любые классы, которые я не могу ввести.
Я понимаю, что я не упомянул конфигурацию XML-компонента. Я не уклоняюсь от этого, но этого проекта не требуется. Я просто конструктор или сеттер прикладываю зависимости при тестировании. очень просто.