Я разрабатываю библиотеку Maven, предназначенную для использования в приложении Spring Boot. Эта библиотека внутренне определяет пару bean-компонентов, которые загружаются в контекст Spring с помощью механизма автоматической настройки Spring. Ниже представлена структура и ключевые файлы библиотеки:
Структура библиотеки:
Код: Выделить всё
-the-library
| |-src
| . |-main
| . . |-java
| . . . |-com.example.common
| . . . . |-FooModuleConfiguration.java
| . . . . |-ClockBean.java
| . . |-resources
| . . . |-META-INF.spring
| . . . . |-org.springframework.boot.autoconfigure.AutoConfiguration.imports
| |-pom.xml
Код: Выделить всё
FooModuleConfiguration.java
Код: Выделить всё
package com.example.common;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
public class FooModuleConfiguration {
}
Код: Выделить всё
ClockBean.java
Код: Выделить всё
package com.example.common;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.time.Clock;
@Configuration
public class ClockBean {
@Bean
@ConditionalOnMissingBean(Clock.class)
public Clock clock() {
return Clock.systemDefaultZone();
}
}
}
Код: Выделить всё
org.springframework.boot.autoconfigure.AutoConfiguration.imports
Код: Выделить всё
com.example.common.FooModuleConfiguration
Код: Выделить всё
ClockBean
Код: Выделить всё
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.example.bar.BarApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'clockBean' for bean class [com.example.common.ClockBean] conflicts with existing, non-compatible bean definition of same name and class [com.example.bar.ClockBean]
Код: Выделить всё
FooCommonBeanConfig.java
Источник: https://stackoverflow.com/questions/781 ... ed-library