详解Spring中使用@within与@target的区别

yizhihongxing

当我们在使用 Spring 框架的注解时,会有两个注解@within@target经常被使用到。这两个注解的作用都是用于匹配目标类上的注解,但它们的匹配方式略有差别。下面我将详细介绍它们的用法及区别。

@within

@within注解用于匹配标注在目标类的注解,该注解的用法如下:

@within(com.example.MyAnnotation)

上述代码中,@within注解用于匹配标记在类级别的MyAnnotation注解。

例如,需要匹配@MyAnnotation注解标记的所有类和接口,可以使用以下代码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
@within(com.example.MyAnnotation)
public void myAdvice() {
    // ...
}

使用@within注解可以匹配如下类:

@MyAnnotation
public class MyClass {

}

@target

@target注解也用于匹配标注在目标类的注解,用法和@within略有不同:

@target(com.example.MyAnnotation)

上述代码中,@target注解用于匹配标注在目标方法或目标类的注解。

例如,需要匹配@MyAnnotation注解标记的所有类和接口中的所有方法,可以使用以下代码:

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
@target(com.example.MyAnnotation)
public void myAdvice() {
    // ...
}

使用@target注解可以匹配如下代码:

@MyAnnotation
public class MyClass {
    @MyAnnotation
    public void myMethod() {
        // ...
    }
}

区别

@within@target都可以匹配标注在目标类的注解。两者的区别在于匹配的层级不同:

  • @within注解只会匹配注解作用于类上的情况,不会匹配方法或属性上的。

  • @target注解会匹配注解作用于方法或属性上,也会匹配作用于类上的情况。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Spring中使用@within与@target的区别 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • iOS 14/iPadOS 14开发者预览版Beta8升级方法及更新内容

    下面是iOS 14/iPadOS 14开发者预览版Beta8升级方法及更新内容的完整攻略。 更新内容 iOS 14/iPadOS 14开发者预览版Beta8的更新内容包括: bug修复和性能改进。 系统安全性得到提升。 部分功能上获得优化,例如FaceTime的画面质量和某些应用的流畅度等。 升级方法 1.备份数据 在升级之前,建议先备份设备中的重要数据,以…

    other 2023年6月26日
    00
  • Linkbutton控件在项目中的简单应用

    下面我将详细讲解“LinkButton控件在项目中的简单应用”的完整攻略。 一、LinkButton控件的介绍 LinkButton控件是ASP.NET中常用的控件之一,它通常用于在页面上生成一个类似于超链接的按钮。当用户单击按钮时,可以触发特定的事件来执行一些操作。 LinkButton控件通常用于单击按钮后执行某些后端操作或跳转到其他页面。 下面是Lin…

    other 2023年6月26日
    00
  • 关于java:无法解析android.content.context类型。

    关于Java:无法解析android.content.Context类型攻略 在Java编程中,我们可能会遇到错误:无法解析android.content.Context类型。这个错误通常是由缺少要的依赖或导入引起的。本攻略将介绍如何解决这个错误,并供两个示例。 原因 在编中,错误:无法解析android.content.Context类型通常是由于以下原因…

    other 2023年5月9日
    00
  • 解决@ConfigurationProperties注解的使用及乱码问题

    解决@ConfigurationProperties注解的使用及乱码问题 入门指南 @ConfigurationProperties注解是Spring Boot中的一个特性,它允许将外部配置文件中的值绑定到Java对象上。然而,在使用@ConfigurationProperties注解过程中,可能会遇到乱码问题,因为配置文件默认采用的是ISO-8859-1编…

    other 2023年6月28日
    00
  • oracle取整的几种方法

    当然,我很乐意为您提供有关“Oracle取整的几种方法”的完整攻略。以下是详细的步骤和两个示例: 1. Oracle取整的几种方法 在Oracle中,有多种方法可以对数字进行取整。以下是一些常见的方法: CEIL:向上取整,返回大于或等于指定数字的最小整数。 FLOOR:向下取整,返回小于或等于指定数字的最大整数。 ROUND:四舍五入,返回最接近指定数字的…

    other 2023年5月6日
    00
  • [下载]苹果iOS9.1正式版固件下载大全

    [下载]苹果iOS9.1正式版固件下载大全攻略 苹果iOS9.1正式版固件是苹果公司发布的操作系统固件版本,提供了一系列新功能和改进。本攻略将详细介绍如何下载苹果iOS9.1正式版固件,并提供两个示例说明。 步骤一:准备工作 在开始下载苹果iOS9.1正式版固件之前,请确保您满足以下准备工作: 确认设备兼容性:苹果iOS9.1正式版固件支持的设备包括iPho…

    other 2023年8月4日
    00
  • jquery功能强大的图片查看器插件

    Jquery功能强大的图片查看器插件 对于许多网站而言,图片展示是非常重要的一个部分,而 jQuery 是一个非常流行的 JavaScript 库。因此,许多开发者开始寻找 jQuery 插件来实现他们的图片展示需求。其中,一个非常出色的 jQuery 插件是图片查看器插件。 简介 图片查看器插件是一个功能强大的 jQuery 插件,它可以让用户在网页上浏览…

    其他 2023年3月28日
    00
  • vue实现自定义全局右键菜单

    下面我将详细讲解vue实现自定义全局右键菜单的完整攻略,包括以下步骤: 1. 引入右键菜单插件 可以使用第三方的插件,比如contextmenu.js,或者Vue-ContextMenu等,这里以Vue-ContextMenu为例: 首先,安装Vue-ContextMenu插件: npm install vue-click-outside –save 然后…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部