面向切面编程的示例

面向切面编程的示例运用面向切面编程思想,对数据库的查询功能进行性能统计业务核心功能类:importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.*;publicclassProductService{publicvoiddoSomeService(){Stringstr=”select*fromtable_namewherename=

大家好,欢迎来到IT知识分享网。面向切面编程的示例"

运用面向切面编程思想,对数据库的查询功能进行性能统计

业务核心功能类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;

public class ProductService { 
   
    public void doSomeService(){ 
   
String str="select * from table_name where name=?";
       try{ 
   
           Class.forName("com.mysql.jdbc.Driver");
       }catch (ClassNotFoundException e)
       { 
   
           e.printStackTrace();
       }
       try(Connection c= DriverManager.getConnection(
               "","","");
           PreparedStatement s=c.prepareStatement(str)
       )
       { 
   
s.setString(1,"");
ResultSet rs=s.executeQuery();
if (rs.next())
{ 
   
    int id=rs.getInt(1);
    String str1=rs.getString(2);
    int a=rs.getInt(3);
    int b=rs.getInt(4);
    System.out.println(id+str1+a+b);
}
       }catch (SQLException e)
       { 
   
e.printStackTrace();
       }
    }
}

日志性能统计类:

import org.aspectj.lang.ProceedingJoinPoint;

public class LoggerAspect { 
   
   public  Object log(ProceedingJoinPoint joinPoint) throws Throwable{ 
   
   long start= System.currentTimeMillis();
   Object object =joinPoint.proceed();
   long end=System.currentTimeMillis();
   System.out.println("查询耗时:"+(end-start));
   return object;
   }
}

.xml文件

<bean name="s" class=""/>
    <bean id="loggcut" class=""/>
<aop:config>
    <aop:pointcut id="loggpoint" expression="execution(* *(..))"/>
    <aop:aspect id="logA" ref="loggcut">
        <aop:around pointcut-ref="loggpoint" method="log"/>
    </aop:aspect>
</aop:config>

着重在于XML pointcut就是指向的是业务功能类——切入点 配合后面的expression= 执行该类下的方法

aspect 则为性能统计 将注入对象id=“loggcut” 放入 再由around 及其属性pointcut-ref 和切入点联系 调用执行方法

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21586.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信