自定义注解使用@Import执行操作

自定义注解使用@Import执行操作

在Java中为了让注解生效,需要利用到反射,但是当我们使用到Spring或者Spring Boot时,我们可以使用Spring的一些机制让自定义注解通过@Import注解完成一些操作。在spring的一些@EnableXX注解中,我们可以看到其上方会有一个@Import注解,比如在@EnableAutoConfiguration中,如下图。
在这里插入图片描述

@Import注解中一般填写自动配置类(普通类即可)执行我们要执行的操作,想要更多的了解@Import可以自行百度,本文主要讲述注解生效的流程。

@Import注解可以引导加载我们需要操作的类,这样通过自定义注解即可实现在通过一个注解完成特定的功能,比如@EnableCache注解。

步骤:

  1. 自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(DemoConfig.class)
public @interface EnableDemo {

}
  1. 创建执行操作的类
import org.springframework.context.annotation.Bean;

//这里需要@Configuration注解,因为我们已经通过@Import注解将操作引导本类中了。
public class DemoConfig {

    @Bean
    public Person getPerson (){
        //添加注解之后,容器中加入person
        Person person = new Person();
        person.setName("cay");
        person.setAdress("city");
        return person;
    }

}
  1. 添加注解,注解可以添加类上,比如Controller等。
@SpringBootApplication
@EnableDemo//添加
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

​ 4. 测试

	@Autowired
    @Qualifier("getPerson")
    Person person;
    
    public Person test13(){
        logger.info(person.toString());
        return person;
    }
  • 使用场景

本次测试用例比较简单,只是对spring框架中@Import注解可以引导加载类,从而执行一些操作。在实际生产中,如果我们有写一些 Jar包,让别人使用的场景,可以通过自定义注解让 Jar 的内容进行生效。

本次是对 实际让 jar 生效的一次描述,做了一些变化,没有进行打包测试,但是步骤是一样。这次描述可能有些混乱,有很多不足的地方,如有错误请指出,等到有更深入的了解的时候,会进行清楚的梳理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它提供了许多便捷的功能和特性,其中包括自定义注解自定义注解是在Java使用元数据的一种方式,它允许开发人员在代码中添加自己定义的标记,以便在运行时使用。在Spring Boot中,自定义注解可以用于各种场景,例如配置类、AOP切面、请求处理等。 要创建一个自定义注解,可以使用Java的注解声明语法,并通过元注解来指定注解的行为。下面是一个示例: ```java import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface CustomAnnotation { String value() default ""; } ``` 在上面的示例中,我们创建了一个名为`CustomAnnotation`的自定义注解。通过`@Target`元注解,我们指定了该注解可以应用于方法上。通过`@Retention`元注解,我们指定了该注解在运行时可见。 接下来,我们可以在Spring Boot应用程序中使用这个自定义注解。例如,我们可以将它应用于一个Controller的方法上: ```java @RestController public class MyController { @GetMapping("/") @CustomAnnotation("Hello") public String hello() { return "Hello, World!"; } } ``` 在上面的示例中,我们在`hello()`方法上使用了`@CustomAnnotation`注解,并传入了一个值"Hello"。在运行时,我们可以通过反射获取到这个注解,并根据注解的值执行相应的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值