如何实现自定义@Enable注释?

时间:2020-08-04 18:35:35

标签: spring spring-boot

我已创建注释 @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);
    }
}

但是它不起作用。我的bean没有创建。请你帮助我好吗?我可能会失去什么?

1 个答案:

答案 0 :(得分:0)

确保您的图书馆应用程序启用了spring-boot-maven-plugin

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

如果您正在使用gradle,请使用gradle等效项。

到目前为止,您所拥有的一切在Java端都是正确的。