Как реализовать пользовательскую аннотацию @Enable? - PullRequest
0 голосов
/ 04 августа 2020

Я создал аннотацию @ EnableMyConfiguration

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(MyConfiguration.class)
public @interface EnableMyConfiguration{
}

И создал простую конфигурацию

@Configuration
@Slf4j
public class MyConfiguration {
    @Bean
    public String testStringBean() {
        String s = "Hello world";
        log.info("TeST LOG = {}", s);
        return s;
    }
}

Зависимости в pom. xml для этой библиотеки:

  • org.springframework.boot: spring-boot-starter: 2.3.2.RELEASE

Я пытался использовать этот стартер в своем тестовом проекте. В этом проекте есть следующие зависимости:

  • org.springframework.boot: spring-boot-starter-parent: 2.3.1.RELEASE
  • зависимость с моей библиотекой

И в основном классе

@SpringBootApplication
@EnableMyConfiguration
public class MainTest{
    public static void main(String[] args) {
        SpringApplication.run(MainTest.class, args);
    }
}

Но не работает. Мой бин не создан. Не могли бы вы мне помочь? Что я мог потерять?

1 Ответ

0 голосов
/ 05 августа 2020

Убедитесь, что в вашем библиотечном приложении включен spring-boot-maven-plugin:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Если вы используете gradle, используйте эквивалент Gradle.

Все, что у вас есть, правильно конец java.

...