使用AspectJ监视非调用方法

时间:2018-05-04 15:06:11

标签: methods aspectj invocation

我正在尝试使用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();。

  1. 同样,需要关闭连接,通常在finally块中。我想告诉学生他们是否忘记采用密切方法。
  2. 对于任何要点有任何想法吗?

0 个答案:

没有答案