我目前正在明斯特大学准备我的学士论文。我计划自动识别Spring配置中的典型问题。市场上有很多工具可以执行静态代码分析来查找错误或问题。这些显然无法检测仅在运行时出现的问题。我将分析Spring应用程序的ApplicationContext,并通过使用反射和bean图分析来查找错误配置。
示例: 一个简单的例子是,如果有人想通过使用注释使类或方法事务安全。他通常会在类或方法上面添加一个@Transactional-tag,但是如果没有正确配置应用程序并且没有向ApplicationContext注册的事务管理器,它会观察注释,那么该标记将被忽略。不会出现错误消息,这就是迄今为止很难找到这些类型的问题的原因。
问题: 哪些是使用弹簧机制错误配置导致的最常见错误或架构故障,可以通过动态分析检测到?是否有任何项目可以做类似的事情?
P.S。在我的论文过程中,我将开发一个原型,可以检测这些问题并从此开源。 :)
答案 0 :(得分: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。