# dynamic-annotation-spring-boot-starter **Repository Path**: guojf/dynamic-annotation-spring-boot-starter ## Basic Information - **Project Name**: dynamic-annotation-spring-boot-starter - **Description**: 动态注解 - **Primary Language**: Java - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2022-03-12 - **Last Updated**: 2022-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dynamic-annotation-spring-boot-starter

star

#### 介绍 动态注解 #### 软件架构 仅依赖spring-boot-starter #### 安装教程 方式一:添加maven依赖 ```xml wiki.xsx dynamic-annotation-spring-boot-starter 0.0.1 ``` 方式二:自行安装添加依赖 ```cmd mvn clean intall ``` #### 使用说明 1. 启动类添加注解 “@EnableDynamicAnnotation({XXXX.class})” ,并加入需要扫描的注解 ```java // 添加动态注解 @EnableDynamicAnnotation({Component.class}) @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 2. 配置文件application.yml或环境变量中加入待替换的配置 方式一: ```yaml my: name: xsx ``` 方式二: ``` System.setProperty("my.name", "xsx"); ``` 3. 在需要动态替换的注解中使用 “${XXXX}” 形式的占位符 ```java @Slf4j @Component("${my.name}") public class MyService { public void myName() { log.info("调用myName"); log.info("my.name = " + this.getClass().getAnnotation(Component.class).value()); } } ``` 4. 测试调用效果: ```cmd 2020-06-22 16:34:45.733 INFO 24236 --- [ main] wiki.xsx.log.service.MyService : 调用myName 2020-06-22 16:34:45.733 INFO 24236 --- [ main] wiki.xsx.log.service.MyService : my.name = xsx ``` #### @EnableDynamicAnnotation注解说明 1. value:待扫描的注解 2. exclude:需要排除的类