`

spring中自定义注解(annotation)与AOP中获取注解

阅读更多

一、自定义注解(annotation)

自定义注解的作用:在反射中获取注解,以取得注解修饰的类、方法或属性的相关解释。

package me.lichunlong.spring.annotation;

import java.lang.annotation.Documented;   
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)   
@Documented 

public @interface LogAnnotation {   

//自定义注解的属性,default是设置默认值
    String desc() default "无描述信息";   
}  

 

二、自定义注解的使用

package me.lichunlong.spring.service;

import me.lichunlong.spring.annotation.LogAnnotation;
import me.lichunlong.spring.jdbc.JdbcUtil;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
 //与其它注解一样的使用
    @LogAnnotation(desc="this is UserService")
    public void add() {
        System.out.println("UserService add...");
    }
}



 

三、AOP中获取注解

//    环绕通知:类似与动态代理的全过程
//    携带参数ProceedingJoinPoint,且必须有返回值,即目标方法的返回
    @Around(value = "execution(* me.lichunlong.spring.service.*.*(..)) && @annotation(log)")
    public Object aroundMethod(ProceedingJoinPoint pjd, LogAnnotation log) {
        Object result = null;
        System.out.println(log.desc());
        try {
            System.out.println("前置通知");
            result = pjd.proceed();
            System.out.println("后置通知");
        } catch (Throwable e) {
            System.out.println("异常通知");
        }
        System.out.println("返回通知");
        return result;
    }

 

本文来源于:http://blog.csdn.net/qpfjalzm123/article/details/45061701

分享到:
评论

相关推荐

    Spring 自定义注解的解析

    在Spring框架中,自定义注解的解析是一个强大的特性,允许开发者根据业务需求创建特定的注解,并在Spring容器启动时自动处理这些注解。本文将深入探讨如何在Spring环境中通过`component-scan`配置来处理自定义Java...

    spring自定义注解样例

    本示例主要探讨如何在Spring中创建和使用自定义注解,以及与AOP结合实现动态代理。 首先,我们需要了解自定义注解的基本结构。在Java中,自定义注解是以`@interface`关键字定义的。例如,我们可以创建一个名为`...

    自定义注解annotation及用法

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器、工具或运行时系统提供额外信息的方式。自定义注解允许开发者创建自己的标记来满足特定需求,比如代码生成、验证、持久化等。本文将深入探讨...

    Spring Boot中自定义注解结合AOP实现主备库切换问题

    Spring Boot 中自定义注解结合 AOP 实现主备库切换问题 在 Spring Boot 应用程序中,实现主备库切换是非常重要的,以减少主库的压力和提高系统的可用性。其中,使用自定义注解结合 AOP(Aspect-Oriented ...

    SpringMVC利用AOP实现自定义注解记录日志

    在Spring中,定义一个自定义注解,比如`@Loggable`,用于标记需要记录日志的方法。注解的定义如下: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Loggable { ...

    SpringBoot AOP各种注解、自定义注解、鉴权使用案例(免费下载)

    SpringBoot AOP,即面向切面编程,是Spring框架中的一个重要特性,用于实现代码的横切关注点,如日志记录、事务管理、权限验证等。AOP通过使用代理模式,将这些关注点与核心业务逻辑分离,使得代码更加模块化,更...

    Spring_Annotation_AOP

    在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...

    java(spring boot)自定义注解

    总结来说,这个示例展示了如何在Spring Boot项目中自定义注解,将其应用于Java Bean的方法,以及如何利用AOP来实现全局扫描和自动执行。这样的实践在系统监控、性能分析和故障排查中非常有用,能够帮助开发者更好地...

    springboot 脱敏自定义注解

    在Spring Boot应用中,我们可以通过自定义注解和Spring AOP(面向切面编程)来实现这一功能。下面将详细解释这个主题。 首先,了解Spring AOP的概念。AOP是面向切面编程,它允许我们在不修改源代码的情况下,通过预...

    自定义注解得使用,模拟spring通过注解方式创建bean实例

    在Java开发中,Spring框架是广泛使用的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器。Spring的注解功能极大地简化了配置,使得开发者可以更专注于业务逻辑。本篇将深入探讨如何自定义注解...

    实现生成自定义注解的实体类

    然后在Spring配置中,通过AOP(面向切面编程)拦截器来处理这个注解,实现自动事务管理。 总结: 自定义注解是Java中的一个重要特性,它允许开发者创建自己的元数据,提高代码的可读性和可维护性。通过定义、使用、...

    自定义注解实现伪动态传参的小demo

    在Java编程语言中,注解(Annotations)是一种元数据,用于提供有关代码的信息,这些信息可以被编译器或运行时...此外,还可以结合Spring框架的AOP特性,将注解驱动的逻辑进一步自动化,提高代码的可维护性和可扩展性。

    java 自定义注解验证

    对于验证,通常会结合AOP(面向切面编程)框架如Spring AOP,或者在运行时通过反射检查注解的存在和值是否符合预期。例如,如果`MyCustomAnnotation`用于验证字段非空,可以这样处理: ```java public void ...

    Spring java注解,元注解和自定义注解

    以下是一些常用的Spring注解: 1. **@Component** - 用于标记一个类作为Spring管理的Bean。 - 可以配合@ComponentScan注解使用,自动扫描指定包下的所有组件。 2. **@Service** - 特别适用于业务逻辑层的服务...

    java自定义注解和通过反射获取注解

    在实际开发中,自定义注解和反射的应用场景非常广泛,比如Spring框架中的依赖注入、AOP切面编程、日志记录、数据校验等。通过注解,我们可以将业务逻辑与配置分离,使得代码更加整洁,同时减少硬编码,提高代码的...

    spring的Annotation注解.

    ### Spring框架中的Annotation注解详解 #### 一、Spring与Annotation的基本概念 Spring框架通过引入Annotation,极大地简化了Java开发中的依赖注入(Dependency Injection, DI)和面向切面编程(AOP)的过程。...

    EJB+Annotation实现AOP的DEMO

    这篇博客"使用EJB+Annotation实现AOP的DEMO"主要介绍了如何在EJB中利用注解(Annotation)来实现AOP的功能。在Java EE中,EJB 3.0及后续版本引入了大量的注解,使得开发者可以免去编写XML配置文件,直接在代码中声明...

    spring自定义注解+Aspect使用1

    在本文中,我们将学习如何在 Spring 项目中使用自定义注解和 Aspect 来实现日志记录功能。我们将从头开始,创建一个简单的 Spring Boot 项目,然后使用自定义注解和 Aspect 来实现日志记录。 自定义注解 首先,...

    以注解方式模拟Spring IoC AOP

    Spring提供了两种主要的AOP实现方式:基于代理(Proxy-based)和基于注解(Annotation-based)。 - **基于代理的AOP**:Spring使用JDK动态代理或CGLIB动态代理创建目标对象的代理,代理对象在调用目标方法前后执行...

Global site tag (gtag.js) - Google Analytics