我正在尝试使用AspectJ来检测方法调用中未调用的方法。也就是说,我想知道是否在另一个方法中没有调用方法。
在同一行中,是否可以监视catch或finally块中方法的调用?我想知道在JDBC方法中是否调用了连接的close方法。
更详细:
1)我想将它用于JDBC方法。特别是,在JDBC中的某些情况下,在连接到数据库时必须使用事务上下文。特别是,通过调用con.setAutoCommit(false)指令给出这种事务上下文; con.commit(); con.rollback();. 例如,让我们看一下从DB中删除客户端的方法的摘录:
public boolean deleteClient(String clientId){
Connection con = null;
boolean b=false;
…
try {
con = DriverManager.getConnection(this.getProperties("url"));
con.setAutoCommit(false);
….//Instructions for deleting the client
`con.commit();
} catch (SQLException e) {
e.printStackTrace();
try {
if(con != null)
con.rollback();
}catch(SQLException e1) {
e1.printStackTrace();
}
}finally {
…if (con != null)
con.close();
…
}
return b;
}`
关键是,我想使用AspectJ来告诉我的学生他们这样的方法是否没有建立事务上下文,也就是说,他们是否不调用任何指令:con.setAutoCommit(false); con.commit();或con.rollback();。
对于任何要点有任何想法吗?