5

我目前正在明斯特大学准备我的学士论文。我计划自动识别 Spring 配置中的典型问题。市场上有很多工具可以执行静态代码分析以查找错误或问题。这些显然无法检测仅在运行时出现的问题。我将分析 Spring 应用程序的 ApplicationContext 并通过使用反射和分析 bean 图来发现错误配置。

示例: 一个简单的示例是,如果有人想通过使用注释使类或方法事务安全。他通常会在类或方法上方添加一个@Transactional-tag,但如果应用程序配置不正确并且没有事务管理器注册到ApplicationContext,它观察注释,那么该标记将被忽略。不会出现错误消息,这就是目前很难找到这类问题的原因。

问题: 哪些是由于使用弹簧机构的错误配置而导致的最常见的错误或架构故障,可以通过动态分析检测到?有没有参与做类似事情的项目?

PS在我的论文过程中,我将开发一个可以检测这些问题的原型,并在以后将其开源。:)

4

1 回答 1

0

从我回答的 Spring 相关问题来看,您的示例(未正确初始化 @Transaction)是被问到最多的问题之一。但是有一个小周:通常问题是有人尝试这样做:

@Service
public class SomeService() {

  @Transaction
  public void save(Some thing) {
      ...
  }

  public void doSomeThing(Some thing) {
     ...
     this.save(thing);
  }
}

然后他们想知道为什么@Transactional在使用doSomeThing.

问题是这只适用于这个真正的 AspectJ 而不是这个代理 AOP。

于 2013-05-22T17:21:36.393 回答