首页 > 其他分享 >spring boot如何自定义注解

spring boot如何自定义注解

时间:2024-05-20 16:40:54浏览次数:23  
标签:lang 自定义 spring boot public org import annotation 注解

总共分三步:

1、创建一个注解

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 MyCustomAnnotation {
    String value() default ""; // 定义一个属性
}

2、创建一个使用注解的类

import org.springframework.stereotype.Service;
 
@Service
public class MyService {
 
    @MyCustomAnnotation("someValue")
    public void myMethod() {
        // 方法实现
    }
}

3、注解处理

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
 
@Aspect
@Component
public class MyCustomAnnotationAspect {
 
    @Pointcut("@annotation(MyCustomAnnotation)")
    public void myCustomAnnotationPointcut() {
    }
 
    @Around("myCustomAnnotationPointcut()")
    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
        // 在目标方法执行前执行的逻辑
        System.out.println("Before method execution");
        
        Object result = joinPoint.proceed(); // 执行目标方法
        
        // 在目标方法执行后执行的逻辑
        System.out.println("After method execution");
        
        return result;
    }
}

 

标签:lang,自定义,spring,boot,public,org,import,annotation,注解
From: https://www.cnblogs.com/51python/p/18202310

相关文章

  • Spring Boot —— Filter 过滤器
    目标实现一个自定义过滤器,在所有请求进来时输出点儿信息实现过滤器实现一个自定义过滤器,在所有请求进行业务处理前,在控制台输出请求Id和请求Url@Configuration@EnableWebMvcpublicclassWebConfiguration{publicstaticclassMyFilterimplementsFilter{......
  • Spring Boot —— Cors 跨域
    原理实现WebMvcConfigurer接口代码publicclassCorsConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddCorsMappings(CorsRegistryregistry){registry//允许跨域访问的路径.addMapping("/**")......
  • Spring Boot —— 集成 Druid
    pom<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>${druid.version}</version></dependency>application-develop.yamlspring:datasour......
  • Spring Boot —— 集成 MyBatis-Plus
    项目基于SpringBoot3.2.5Pom需要注意的是,引用Mybatis-Plus依赖,无需手动引入Mybatis<!--https://mvnrepository.com/artifact/com.mysql/mysql-connector-j--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</......
  • Springboot Data Jdbc实体类json格式存储
    日常需求中有些需求需要在某字段存储json格式数据,例如日志审计接口传参数据等1.首先我们得保证数据库字段为text或者json2.设置读转换和写转换器importcom.fasterxml.jackson.databind.ObjectMapper;importorg.springframework.core.convert.converter.Converter;importo......
  • Spring是如何整合MyBatis将Mapper接口注册为Bean的原理
    一、接口生成bean定义1.首先MyBatis的Mapper接口核心是JDK动态代理2.Spring会排除接口,无法注册到IOC容器中3.MyBatis实现了BeanDefinitionRegistryPostProcessor可以动态注册BeanDefinition4.需要自定义扫描器(继承Spring内部扫描器ClassPathBeanDefinitionScan......
  • Spring Boot —— 集成 Springdoc
    pom<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>x.x.x</version></dependency><!--Springboot3使用--><!--https://mvnrepository.......
  • 即构 UIKits 重磅发布!高效开发与自定义UI兼备,打造互动场景新标杆
    即构UIKits上线,新一代场景化实时互动SDK!即构科技发布了首款面向中小团队的整合型实时互动产品UIKits,基于场景化最佳实践,整合RTC、IM、直播、美颜等多款产品,打造了音视频通话UIKit(CallKit)、互动直播UIKit(LiveStreamingKit)、语聊房UIKit(LiveAudioRoomKit)等多个场景互动SDK......
  • EasyUEFI、Bootice、Bcdedit和EfiVarCLI都是用于管理计算机启动项和UEFI设置的工具,但
    EasyUEFI、Bootice、Bcdedit和EfiVarCLI都是用于管理计算机启动项和UEFI设置的工具,但它们在功能和用途上有一些区别:EasyUEFI:EasyUEFI是一个用户友好的图形界面工具,主要用于管理UEFI引导项,在Windows操作系统下操作更加方便。EasyUEFI提供了添加、删除、编辑UEFI引导项的......
  • springBoot统一异常处理
    一、概述:  1.1.Spring在3.2版本增加了一个注解@ControllerAdvice,可以与@ExceptionHandler、@InitBinder、@ModelAttribute 等注解注解配套使用。简单的说,该注解可以把异常处理器应用到所有控制器,而不是单个控制器。借助该注解,我们可以实现:在独立的某个地方,比如单独一个类,定......