`
jaychang
  • 浏览: 731238 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

通过Spring LocalVariableTableParameterNameDiscoverer 获取方法参数名

 
阅读更多
import org.springframework.core.LocalVariableTableParameterNameDiscoverer
publicclass Test{
    privatestaticfinal LocalVariableTableParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer();

    /**
     * 获取方法所有参数名
     * @param method
     * @return
     */
    publicstatic String[] getParameterNames(Method method) {
        return parameterNameDiscoverer.getParameterNames(method);
    }

    publicstaticvoidmain(String[] args) throws ClassNotFoundException {
        Class<?> aClass = Class.forName("com.codercool.ssm.modules.system.service.impl.UserServiceImpl");
        Method[] methods = aClass.getMethods();
        StringBuilder sb = new StringBuilder();
        for (Method method : methods) {
            sb.append("方法:"+method.getName() + " ");
            String[] parameterNames = getParameterNames(method);
            if (parameterNames == null || parameterNames.length <1) {
                sb.append("无参");
            } else {
                sb.append("[");
                for (int i = 0; i < parameterNames.length ; i++) {
                    sb.append(parameterNames[i]);
                    sb.append(",");
                }
                sb.append("]");
            }
            sb.append("\n");
        }
        System.out.println(sb.toString());
    }
}


publicclass UserServiceImpl implements IUserService {

    @Autowired
    private UserDao userDao;

    publicvoidaddUser(String userId,User user) {
        userDao.add(user);
    }
}

 



输出结果:
方法:addUser [userId,user,]
方法:wait 无参
方法:wait 无参
方法:wait 无参
方法:equals 无参
方法:toString 无参
方法:hashCode 无参
方法:getClass 无参
方法:notify 无参
方法:notifyAll 无参

扩展信息:
Spring此功能是基于ASM框架实现

分享到:
评论

相关推荐

    在自定义spring aop中使用el获取拦截方法的变量值。

    标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...

    Spring Aop Advise方法(增强方法) 中获取目标方法的参数

    通过以上知识,我们可以理解如何在Spring AOP中实现Advise,以及如何在Advise中获取和操作目标方法的参数。在实际开发中,这种能力使得我们可以灵活地为系统添加跨切面的监控、日志、事务管理等功能,而无需改动业务...

    SPRING MVC 的请求参数获取的几种方法

    SPRING MVC 请求参数获取的几种方法 SPRING MVC 框架中,获取请求参数是非常重要的一步,下面将介绍 SPRING MVC 中获取请求参数的几种方法。 1. 使用 @PathVariable 注解获取路径中传递参数 在 SPRING MVC 中,...

    spring boot配置文件参数详解

    spring boot配置文件参数详解,spring boot配置文件参数详解,spring boot配置文件参数详解,spring boot配置文件参数详解,

    Java Spring Controller 获取请求参数的几种方法详解

    本文将详细讲解在Spring Controller中获取请求参数的六种常见方法。 1. **直接作为方法参数** 当请求是GET类型且`Content-Type`为`application/x-www-form-urlencoded`时,可以直接在Controller方法的参数列表中...

    Spring获取ApplicationContext对象工具类的实现方法

    本文将详细介绍Spring中获取ApplicationContext对象的工具类实现方法。 在Spring中,典型的获取ApplicationContext对象的方式是使用ApplicationContext接口的一个实现类,如ClassPathXmlApplicationContext。这是一...

    获取spring容器的方法

    本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...

    优雅编写自己自定义在SpringCloud中配置参数类Demo工程

    在Spring Cloud生态系统中,开发人员经常需要处理各种配置参数,以适应不同的运行环境。本教程将引导你优雅地创建一个自定义配置参数类,并在实际的Spring Boot应用中使用它。我们将探讨以下关键知识点: 1. **...

    springSecurity 实现传参

    通过以上步骤,你可以实现Spring Security的登录验证和参数传递功能,同时与MySQL数据库配合,完成用户的管理。在实际项目中,还需要考虑错误处理、权限控制、记住我功能等更多细节。理解并掌握这些概念将有助于构建...

    Spring中的AOP(五)——在Advice方法中获取目标方法的参数

    但是,如果你的项目使用了Java 8及以上版本,并且在编译时开启了`-parameters`选项,或者使用了如Lombok这样的库,那么你可以通过反射获取到参数名。例如,使用Java 8的元数据: ```java MethodSignature method...

    Spring拦截器,高级参数绑定

    高级参数绑定是指在Controller方法中,Spring MVC能够自动将请求参数绑定到方法参数上,包括基本类型、复杂对象甚至自定义类型。例如,可以使用`@RequestParam`、`@PathVariable`、`@RequestHeader`、`@RequestBody`...

    Spring MVC不能直接接收list类型参数的问题

    针对上述问题,有两种主要的方法可以解决 Spring MVC 无法直接接收 List 类型参数的问题: ##### 方法一:使用 jQuery 的 traditional 参数 在 AJAX 请求中添加 `traditional: true` 参数,以确保数组类型的参数被...

    Spring访问传入数组参数的Oracle存储过程

    5. **处理结果**:如果存储过程有返回值或者输出参数,可以使用`registerOutParameter`和`getObject`方法获取。 `源码`标签表明我们将看到实际的代码示例,而`工具`标签暗示可能涉及到Spring框架的某些工具类。在这...

    Spring MVC请求参数与响应结果全局加密和解密详解

    在总结一下,Spring MVC请求参数与响应结果全局加密和解密可以通过使用AES对称秘钥和SHA-256签名算法来实现。我们需要考虑到第三方的提交方式,兼容不同的ContentType提交方式,并使用EncryptUtils工具类来进行加密...

    spring mvc 参数绑定漏洞

    在处理HTTP请求时,Spring MVC 提供了参数绑定功能,将HTTP请求中的参数映射到控制器方法的参数上,使得开发更加便捷。然而,这个特性也可能导致安全问题,特别是参数绑定漏洞。 参数绑定漏洞通常出现在以下情况: ...

    Spring MVC获取查询参数及路径参数代码实例

    Spring MVC获取查询参数及路径参数代码实例 Spring MVC是Java界最流行的Web应用框架之一...在实际开发中,获取查询参数和路径参数是非常常见的需求,通过使用Spring MVC提供的注解和API,我们可以轻松地实现这些功能。

    Spring  AOP实现方法大全

    该接口只有一个方法`before()`,它接受三个参数:`Method`对象代表即将执行的方法,`Object[] args`是方法的参数,`Object target`是目标对象。在`before()`方法中,可以执行预处理操作,如日志记录。如果`before()`...

    Spring3.0.5扩展支持AOP获取HttpServletResponse

    在Spring 3.0.5版本中,Spring扩展了对AOP的支持,特别是在处理HTTP响应时,可以通过AOP来获取`HttpServletResponse`对象。`HttpServletResponse`是Servlet API中的核心接口,它用于封装服务器向客户端发送的响应...

    spring aop的注解配置中,前置,后置,环绕通知,以及异常通知怎么获得被代理方法的参数

    后置通知无法直接获取到方法的返回值,但可以通过`JoinPoint`获取参数和方法信息。如果需要获取返回值,可以使用`@AfterReturning`注解。 3. **后置返回通知(After Returning Advice)** `@AfterReturning`注解...

    spring boot中controller的使用及url参数的获取方法

    这些参数可以通过方法参数接收,Spring会自动将它们绑定到对应的字段上。 ```java @GetMapping("/search") public List&lt;User&gt; searchUsers(@RequestParam("keyword") String keyword) { // 根据关键字搜索用户 } ``...

Global site tag (gtag.js) - Google Analytics