spring中如何获取注入bean里方法上的注解?

问题描述

spring中如何获取注入bean里方法上的注解?

有这样一个需求,在spring中,想用反射获取一个注入bean中方法的注解
一般情况下这样的操作就行了:
Method method = bean.getClass().getMethod(...);
Annotation[] annotations = method.getAnnotations();
这样就能获取注解了。

但在spring中,这种方法是获取不到annotation的,原因是这里的bean其实是一个代理类。那么问题来了,我在这种情况下想要获取原方法的annotation,有什么好办法吗?

解决方案

Spring Bean 注入 Servlet 的方法
ServletContextListener获取spring注入的bean,侦听器、过滤器等不归Spring容器托管,无法用注解注入!!!

解决方案二:

机器人同志,距真正理解人的意思还差着点意思~~

时间: 2024-12-22 16:07:37

spring中如何获取注入bean里方法上的注解?的相关文章

android-Android中为何获取系统时间的方法多次执行后时间仍不变

问题描述 Android中为何获取系统时间的方法多次执行后时间仍不变 我自定义了一个view,每次这个view一触碰,就执行方法calendar.get(calendar.second);来获取当前系统秒数,可是每一次触碰后,在MotionEvent.action_down下,系统秒数都是第一次执行后得到的结果,这是为什么?此方法重新执行,不理性得到最新的秒数吗, 解决方案 我觉得问题是因为,你只初始化了一次Calender calender =Calender.getInstance(),而以

如何得到一个方法上面的注解

问题描述 如何得到一个方法上面的注解 如题,我自定义了一个注解类 @ AuditAttribute 我在java实体类的get方法上面加上这个注解,然后用 Annotation annotation = f.getAnnotation(AuditAttribute.class); Annotation[] methodAnnotations = method.getAnnotations(); 这样来取,不管是取多个还是取一个,取到的总是null 这是为什么? 解决方案 这个是我写的你看看 pu

Spring中我们用到的功能实现:基于注解的Ioc自动装配

  我们要完成自动装配,那么就要有一个存放bean对象的容器,然后要有装配的注解,那么哪些类该被存到容器呢,在spring中我们使用过@Service.@Resource等,看下面的代码,你也可以做到.     来看看这是一个简单的容器接口 /**  * 容器接口  * @author:rex  * @create_time:2014-6-26  * @version:V1.0  */ public interface Container { Object getBean(String name

Spring源码学习之:@async 方法上添加该注解实现异步调用的原理

在我们使用spring框架的过程中,在很多时候我们会使用@async注解来异步执行某一些方法,提高系统的执行效率.今天我们来探讨下 spring 是如何完成这个功能的.     spring 在扫描bean的时候会扫描方法上是否包含@async的注解,如果包含的,spring会为这个bean动态的生成一个子类,我们称之为代理类(?), 代理类是继承我们所写的bean的,然后把代理类注入进来,那此时,在执行此方法的时候,会到代理类中,代理类判断了此方法需要异步执行,就不会调用父类 (我们原本写的b

【spring框架】spring中集合的注入

集合注入(很少用) 有的时候我们会使用别人提供我们的类,它里面如果有集合的话,在这个时候我们需要把想注的东西注入进去. 通过<list/>.<set/>.<map/>及<props/>元素可以定义和设置与Java Collection类型对应List.Set.Map及Properties的值. 实现: <bean id="moreComplexObject" class="example.ComplexObject&quo

探讨php中防止SQL注入最好的方法是什么_php实例

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: 复制代码 代码如下: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE"); DROP TABLE表; - ,使查询变成: 复制代码 代

linux中shell获取ssh端口号方法

  格,如下: 代码如下 [root@MyVPS1697 201407]# netstat -ntpl|grep sshd|grep -v grep |awk -F : '{print $4}' 为了解决空格问题,把我所在的3个运维群都问了一个遍,现在才知道人多力量大,好多热心的群友给我了几个解决办法,现在把他们给的shell语句发出来: 代码如下 netstat -antp | grep sshd| awk -F ":" '{print $4}' | awk '{if($0 !~/^

spring中bean配置和bean注入

1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用. 1 bean配置 bean配置有三种方法: 基于xml配置Bean 使用注解定义Bean 基于java类提供Bean定义信息 1.1 基于xml配置Bean  对于基于XML的配置,

Spring中管理Bean依赖注入之后和Bean销毁之前的行为

    对于Singleton作用域的Bean,Spring容器将会跟踪它们的生命周期,容器知道何时实例化结束.何时销毁.Spring可以管理Bean在实例化结束之后和Bean销毁之前的行为. Bean依赖关系注入之后的行为:     Spring提供了两种方式在Bean全部属性设置成功后执行特定的行为: 在Spring配置文件中使用init-method属性:这个属性指定某个方法在Bean全部依赖关系设置结束后自动执行.这个方法写在Bean里面.使用这种方法不需要将代码与Spring耦合在一起