首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java/spring中审计方法变量的最佳方法是什么?

在java/spring中审计方法变量的最佳方法是什么?
EN

Stack Overflow用户
提问于 2017-12-19 06:30:00
回答 1查看 461关注 0票数 3

我已经实现了spring来审计我的方法(这将读取方法参数和参数)。我不知道如何审计方法中声明的变量。在下面的示例中,我希望审计"c“和"name”变量。

代码语言:javascript
复制
public void method1(int a, int b){  
     int c = a+b;  
     String user= "test";  
} 

注意:我需要变量名(即"c")和它的值(假设a和b分别为3和4),即7和类似的变量名(即“用户”)和它的值(即“测试”)用于审计

在我的应用程序中,假设我有一个名为“process(Object. values) / process(Map)”的方法,它将接受"varargs“或"map”作为它的参数(process()方法定义取决于我们)。因此,我们需要将要审计的变量传递给这个process()方法。

我的方法:

代码语言:javascript
复制
 public void method1(int a, int b){  
     int c = a+b;  
     String user= "test"; 

    // logic to send variables to process method
    Map<String, Object> myMap = new HashMap<>();
    myMap.put("c",c); 
    myMap.put("user",name); 
    process(myMap);
} 

这种方法的问题是,开发人员每次都必须创建映射并填充值。

如果我们能以有效的方式做这件事,请建议我。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-12-30 06:35:41

我不知道如何审计方法中声明的变量。

简单的答案是:您不知道!局部变量有其名称是有原因的-它们是本地变量!,此外,一些编译器将局部变量优化为常量或其他JVM操作码。

对方法参数进行审计可能是有意义的。这可以很容易地为Spring组件的公共、非静态方法使用Spring。如果您需要审计非Spring对象或内部方法调用,比如this.doSomething(),甚至是私有方法(糟糕的设计,不应该是必要的),那么您仍然可以在您的Spring应用程序中使用成熟的AspectJ。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47881180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档