Пытаюсь изучить автоконфигурацию Springboot.
Я создал следующий модуль с классом автоконфигурации. Как указано, идея заключается в том, что миграция компонента AutoConfigBeanCreated будет создана, если вызывающее приложение иметь библиотеку Flyway в пути к классу:
@Slf4j
@ConditionalOnClass(Flyway.class)
public class MigrationAutoConfiguration {
@Bean
public void migrationAutoConfigBeanCreated(){
log.debug("MigrationAutoConfiguration is called");
}
}
И это работает нормально: когда вызывающий модуль имеет библиотеку Flyway в своем пути к классам, отображается журнал отладки.
Проблема в том, что я попробуйте применить @ConditionalOnClass только к компоненту, а не ко всему классу конфигурации, например:
@Slf4j
public class MigrationAutoConfiguration {
@Bean
@ConditionalOnClass(Flyway.class)
public void migrationAutoConfigBeanCreated(){
log.debug("MigrationAutoConfiguration is called");
}
}
У меня во время обеда такая ошибка:
2020-09-30 17:30:21.527 ERROR 26028 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.medkhelifi.tutorials.hwspringautoconfig.migration.MigrationAutoConfiguration': Unexpected exception during bean creation; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:530) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at com.medkhelifi.tutorials.alljava.various.VariousMainApp.main(VariousMainApp.java:9) [classes/:na]
И я не понимаю почему.
У меня есть два модуля poms:
Автоконфигурация pom :
org.projectlombok
lombok
org.springframework.boot
spring-boot-starter-data-jpa
true
org.flywaydb
flyway-core
true
модуль вызывающего абонента:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-data-jpa
org.flywaydb
flyway-core
-->
com.medkhelifi.tutorials
hello-springboot-starters
org.projectlombok
lombok
Подробнее здесь: https://stackoverflow.com/questions/641 ... ptionproxy
Автоконфигурация Springboot @ConditionalOnClass TypeNotPresentExceptionProxy ⇐ JAVA
Программисты JAVA общаются здесь
1734111934
Anonymous
Пытаюсь изучить автоконфигурацию Springboot.
Я создал следующий модуль с классом автоконфигурации. Как указано, идея заключается в том, что миграция компонента AutoConfigBeanCreated будет создана, если вызывающее приложение иметь библиотеку Flyway в пути к классу:
@Slf4j
@ConditionalOnClass(Flyway.class)
public class MigrationAutoConfiguration {
@Bean
public void migrationAutoConfigBeanCreated(){
log.debug("MigrationAutoConfiguration is called");
}
}
И это работает нормально: когда вызывающий модуль имеет библиотеку Flyway в своем пути к классам, отображается журнал отладки.
Проблема в том, что я попробуйте применить @ConditionalOnClass только к компоненту, а не ко всему классу конфигурации, например:
@Slf4j
public class MigrationAutoConfiguration {
@Bean
@ConditionalOnClass(Flyway.class)
public void migrationAutoConfigBeanCreated(){
log.debug("MigrationAutoConfiguration is called");
}
}
У меня во время обеда такая ошибка:
2020-09-30 17:30:21.527 ERROR 26028 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.medkhelifi.tutorials.hwspringautoconfig.migration.MigrationAutoConfiguration': Unexpected exception during bean creation; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:530) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at com.medkhelifi.tutorials.alljava.various.VariousMainApp.main(VariousMainApp.java:9) [classes/:na]
И я не понимаю почему.
У меня есть два модуля poms:
Автоконфигурация pom :
org.projectlombok
lombok
org.springframework.boot
spring-boot-starter-data-jpa
true
org.flywaydb
flyway-core
true
модуль вызывающего абонента:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-data-jpa
org.flywaydb
flyway-core
-->
com.medkhelifi.tutorials
hello-springboot-starters
org.projectlombok
lombok
Подробнее здесь: [url]https://stackoverflow.com/questions/64141051/springboot-autoconfiguration-conditionalonclass-typenotpresentexceptionproxy[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия