Я хотів поділитися своїм рішенням, яке відповідає @Configurable
підходу, як briefly
згадується у відповіді @ glaz666, оскільки
- відповідь на @skaffman майже 10 років, і це не означає , що не досить добре або не працює
- Відповідь @ glaz666 коротка і не дуже допомогла мені вирішити мою проблему, але вказувала мені в правильному напрямку
Моя установка
- Spring Boot 2.0.3 з
Spring Neo4j & Aop starts
(що в будь-якому разі не має значення)
- Ігнорувати боби, коли
Spring Boot
готовий, використовуючи @Configurable
підхід (використовуючи ApplicationRunner
)
- Gradle & Eclipse
Кроки
Мені потрібно було виконати наведені нижче кроки, щоб змусити його працювати
- Поміщення,
@Configurable(preConstruction = true, autowire = Autowire.BY_TYPE, dependencyCheck = false)
яке слід розміщувати поверх того, Bean
що повинно бути встановлено вручну. У моєму випадку те, Bean
що має бути встановлено вручну, має @Autowired
послуги, отже, реквізити вищевказаних анотацій.
- Анотація головного весняного завантаження
XXXApplicaiton.java
(або файлу, який зазначається @SpringBootApplication
) за допомогою @EnableSpringConfigured
та@EnableLoadTimeWeaving(aspectjWeaving=AspectJWeaving.ENABLED)
- Додайте залежності у свій файл збирання (тобто build.gradle або pom.xml залежно від того, який саме ви використовуєте)
compile('org.springframework.boot:spring-boot-starter-aop')
таcompile('org.springframework:spring-aspects:5.0.7.RELEASE')
- Новий + ваш,
Bean
який @Configurable
анотується де завгодно, і його залежності мають бути підключені автоматично.
* Що стосується пункту №3 вище, я усвідомлюю, що org.springframework.boot:spring-boot-starter-aop
транзитивно тягне spring-aop
(як показано тут мавенцентральне ), але, у моєму випадку, Затемнення не вдалося вирішити @EnableSpringConfigured
анотації, отже, чому я явно додав spring-aop
залежність на додаток до стартера. Якщо ви зіткнулися з одним і тим же питанням, просто оголосьте про залежність або вирушайте у пригоду з'ясування
- Чи є конфлікт версій
- Чому
org.springframework.context.annotation.aspect.*
не доступний
- Чи правильно налаштовано IDE
- І т.д.