Spring 怎么获取自定义注解标注的方法

在我自己的项目中,我自定义一个注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface ExcelSheet {

    /**
     * 表格类别
     * @return
     */
    String value();

    /**
     * 创建的顺序(越大越往后执行)
     * @return
     */
    int index();
}

用来标注一些方法
例如:

 @ExcelSheet(value = "excel", index = 1)
    public void firstCallImpl() {
   //一些执行的代码
}

我现在的需求:
如果有多个方法被这个注解标注了那么,我能通过这个注解获取这个方法吗?
感谢大佬们的回答

0

2个回答

以aop around 为列,可以这样写,仅供参考

@Around("within(com.fly..* )")
 public Object around(ProceedingJoinPoint joinPoint)
        throws Throwable
    {
        String className = joinPoint.getTarget().getClass().getSimpleName();
        MethodSignature signature = (MethodSignature)joinPoint.getSignature();
        Method method = signature.getMethod();
        String methodName = new StringBuilder(className).append(".").append(method.getName()).toString();
        boolean isExcelSheet = method.isAnnotationPresent(ExcelSheet.class);
                。。。
        }   

知道你的需求了,换一种思路,使用你这个自定义注解的类是spring管理的,根据上下文获取bean的代码为:

 LOGGER.info("★★★★★★★★ ApplicationContext = {}", applicationContext);
        int i = 1;
        for (String beanName : applicationContext.getBeanDefinitionNames())
        {
            LOGGER.info("{}.\t{}", i, applicationContext.getBean(beanName));
            i++;
        }

下面用反射的方式去判断应该不难了吧,可以自己调试,供参考。

3
u014007345
asgkkigh 不过还是谢谢你,共同进步
5 个月之前 回复
u014007345
asgkkigh 你这个是调用的时候才会获得,但是我现在需要的效果是启动的时候,因为我写的时候不知道多少个方法调用了这个,我只知道我要调用含有这个注解的方法
5 个月之前 回复

补充下这个问题的需求:
上边这个问题的需求的原因:
我现在需要做一个excel ,一个excel里会有多个sheet ,我这个就是给注解的value相同的就会组成一个excel,而且根据index 的先后调用,到时候我就不用手动调用生成每个sheet。我只需要关注每个sheet是怎么生成的,达到解耦的目的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring中自定义注解(annotation)与AOP中获取注解
spring中自定义注解(annotation)与AOP中获取注解.通过实例演示自定义注解。
Java自定义注解使用反射获取字段注解
简单demo,导入即可运行。
springAop+自定义注解实现权限管理
一个简单的采用自定义注解结合SpringAop实现方法执行的权限管理,这个demo中并没有涉及到与数据库的交互和业务代码,用户权限在登陆时采用简单的手动初始化。该demo用的jdk1.7编译,Spring4.0版本,只想通过这个demo熟悉相关技术,如有不足之处还望各位大佬多多包涵并指出。
Spring 自定义注解注入properties文件的值jar包
Spring 自定义注解注入properties文件的值jar包,下面为使用方法 在xml配置文件中,这样加载properties文件 <bean id="propertyConfigurer" class="com.better517na.propertiesComponent.business.ExtendedPropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:com/better517na/config/jdbc.properties</value> </list> </property> </bean> 然后,在需要注入的地方这样 @Config("timeslice") private String timeslice;
Spring java注解,元注解和自定义注解
Spring java注解,元注解和自定义注解 Spring java注解,元注解和自定义注解 Spring java注解,元注解和自定义注解 Spring java注解,元注解和自定义注解 Spring java注解,元注解和自定义注解
TOKEN自定义注解
TOKEN自定义注解,用于防止重复提交的,直接应用就可以了!
SpringMVC利用AOP实现自定义注解记录日志
SpringMVC利用AOP实现自定义注解记录日志
自定义注解读取Jar包_需要的Jar包
通过自定义注解读取Jar包里面的类名、属性名、中文注释以及属性类型所需要的Jar包示范,通过这个Jar包可以将里面的属性名、类名等读出来添加进数据库中
spring aop+自定义注解+反射实现统一校验脚手架
初始化工程,支持基本数据格式校验 mark 2018.5.21 一口气写完的,还没有怎么测试,先提交上来再说 remark:最近刚到新公司接收项目,发现这里校验参数的没有做,纯硬编码的起判参数的值,主要是为了处理前端传的参数和后端字典的匹配 现在匆匆的实现了这个功能,后期有空会做更多的处理 未完待续....2018.5.21 2018.5.22 1、添加分组校验 2、修改校验值合法时必须传参标示问题,现在可以不传 3、错误描述添加统一配置 工程介绍:SpringBoot项目脚手架,利用spring aop+java反射实现自定义注解校验参数 源码里有使用都例子在DemoContorller example1:校验userName参数必填 @CheckParams(notNull = true) private String userName; example2:校验age参数为数值 @CheckParams(numeric = true) private String age; example3:校验phone参数非空、最小长度为1、最大长度为11 @CheckParams(notNull = true,minLen = 1,maxLen = 11) private String phone; example4:校验userType参数合法性,值在UserTypeEnum枚举中 @CheckParams(enumsValue= UserTypeEnum.class) private String userType;//主要是完成这个功能 example5:此例子是用于保存接口不用传递id参数,但是修改接口需要传id,此处用分组校验来实现, 下面的意思是:分组为UserParam的id不能为空 @CheckParams(notNull = true,groups=UserParam.class) private String id;
SpringBoot 、Shiro、 自定义注解权限控制源码下载
SpringBoot 、Shiro、 自定义注解权限控制
spring自定义注解样例
spring自定义注解样例
使用SpringBoot通过自定义注解+AOP+全局异常处理实现参数统一非空校验源码
使用SpringBoot通过自定义注解+AOP+全局异常处理实现参数统一非空校验
自定义注解和注解解释器
自定义注解,与注解解释器,并且实例化使用注解的类
java代理service和自定义注解
java静态代理设计模式,学习记录,简单自定义注解编写
java自定义注解和通过反射获取注解
自定义注解和通过反射获取注解
spring 2.5 注解
@BackgroundTaskpublic class FilePoller {@PostConstructpublic void startPolling() {...}@PreDestroypublic void stopPolling() {...}...} @Autowiredprivate MessageSource messageSource; @Autowiredprivate ResourceLoader resourceLoader; @Autowiredprivate ApplicationContext applicationContext;
springmvc所有方法url映射获取
通过重写dispatcherservlet的一个doservice方法把springmvc的url对应方法打印出来。 所需要做的是: 1,使用本文件作为原先springmvc的xml文件的dispatcherservlet。 2,启动项目,随意发送一个请求,可以在控制台看到打印的所有映射的关系。
spring mvc 中 实现自定义注解 拦截需要的方法
网上很多人想使用注解拦截spring mvc action中的一个方法,实现方法很多,一般是通过在拦截器中分析url路径来实现, 使用自定义注解的方式来标注要拦截的 action 中的某个方法, 没有很好的解决方法, 如果通过借助spring mvc中的方法可以轻松实现要拦截 action 中 具体的某个方法. 不多说了,看代码,里面写的很详细
自定义注解得使用,模拟spring通过注解方式创建bean实例
自定义注解得使用,模拟spring通过注解方式创建bean实例!
Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离
Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离
spring aop的注解配置中,前置,后置,环绕通知,以及异常通知怎么获得被代理方法的参数
NULL 博文链接:https://baobeituping.iteye.com/blog/1208293
如何获得比特币
比特币的获取方法,怎么获得比特币
扫描指定包下的class,并将javaBean对象动态注册到spring环境中
动态扫描指定的包,包含其所有子包 扫描包下面的class文件,并将javaBean注册到spring环境
获取spring容器的方法
常用的获取spring容器的方法
openlayers 添加标注 markers
openlayers 添加标注 markers 怎么给Google地图添加标注
使用注解配置实现Spring动态数据源切换
使用注解配置实现Spring动态数据源切换,实现原理 1、自定义动态数据源类DynamicDataSource: 实现spring类AbstractRoutingDataSource的方法determineCurrentLookupKey 2、自定义Spring AOP类DataSourceAspect 3、自定义注解类DataSource 测试环境eclipse+spring+restlet+mysql
spring整合redis做缓存用注解实现的完整例子
spring整合redis做缓存用注解实现的完整例子,带jar包,可以直接运行
Java自定义注解实例
包括Java自定义注解以及包括自定义注解的应用实例。以及注解相关知识的注解
spring 获取bean
spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean
java自定义注解
利用java注解机制,实现自定义注解实例,例子中实现了简单的注解赋值和获取并打印值。
springboot ibaits mysql整合
maven开发springboot ibaits mysql整合,里面包含spring 任务调度,拦截器,自定义注解,token等技术
获得本机IP地址,本机IP地址 获取Ip地址方法
获得本机IP地址,本机IP地址 获取Ip地址方法,本机IP地址怎么获取
springboot 1.5.9+mybatis动态指定数据源
springboot 1.5.9+mybatis 自定义注解,在方法上添加注解实现动态绑定数据源
文件导入导出工具类和自定义注解
文件导入导出工具类,以及自定义导出字段注解;文件导入导出工具类,以及自定义导出字段注解;
spring与java反射结合动态定义类及调用函数
spring与java反射结合动态定义类及调用函数实现
java(spring boot)自定义注解
自定义java注解开发,javabean中某方法添加该自定义注解,配置该方法相关信息指标,通过全局扫描该注解获取全部方法及相关指标,自动执行方法(本demo用于系统监控开发)
获取RequestMapping所有的方法和路径|SpringMvc的Controller
通过编译文件的class路径,反射得到Class,获取RequestMapping对应注解和value路径
自定义注解实现
看到别的博主写的几篇接绍注解相关的东西,觉得挺好的,mark一下 概述及JDK自带注解:http://blog.csdn.net/zen99t/article/details/49506919 自定义注解:http://blog.csdn.net/zen99t/article/details/49508447 解析注解:http://blog.csdn.net/zen99t/article/details/49512411 注解反射生成SQL语句:http://blog.csdn.net/zen99t/article/details/50351575 后面的文件是自己上传的对着博主实现加了注释的代码。主要就是自定义了注解,使用了自定义注解,然后利用java的反射机制根据注解生成不同的sql语句
三种方法获取外网(公网)IP
三种方法获取外网(公网)IP =================================== 第一种:使用Winsock控件(MSWINSCK.OCX),这种方法目前是最好的,占用资源少,速度快且不会出错。第二种:使用Microsoft Internet Transfer 控件(MSINET.OCX),这个需要延时判断,在执行上一个请求的时候再次获取会出错(不过可以自己加入判断)。第三种:使用Microsoft Internet Control控件(IeFrame.dll),这个方法因为使用了IE内核,很吃内存,一个小程序,内存暴涨一百KB,而且还无法销毁占用内存,由于因为微软的关系,目前好像还没有找到低内存的方法。有网友说可以做成ActiveX Dll这种方式,调用完毕就自动销毁,相对内存占用就能得到及时释放。还有说IE8的内核就不存在这个问题,但是我测试感觉效果没办法。
SPRING MVC 的请求参数获取的几种方法
慨括了spring mvc请求参数常见的几种获取方法
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 自定义注解学习 人工智能标注培训