方法一:
<bean id="seckillServiceImpl" class="org.seckill.service.impl.SeckillServiceImpl" ></bean>
<!-- druid Spring 關聯監控 : 切面-->
<bean id="druid-stat-interceptor"
class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="proxyTargetClass" value="true" />
<property name="beanNames">
<list>
<!-- 這里配置需要攔截的bean id列表 -->
<value>seckillServiceImpl</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>druid-stat-interceptor</value>
</list>
</property>
</bean>
方法二:pointcut-ref="druid-stat-pointcut"在idea中報Cannot resolve Spring Pointcut 'druid-stat-pointcut' 不用管它
<bean id="druid-stat-interceptor"
class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
scope="prototype">
<property name="patterns">
<list>
<value>org.seckill.service.*</value>
<value>org.seckill.dao.*</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor"
pointcut-ref="druid-stat-pointcut" />
</aop:config>
第二種方法配置結束后,啟動項目報錯:java.lang.NoClassDefFoundError:org / aspectj / util / PartialOrder $ Partial
需要引入
<dependency>
<groupId>aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.5.3</version>
</dependency>
jar包
你要使用spring的aop,要么引入aspectj,要么cglib!除非你不使用spring的aop!當然,你也可以只用spring的其他特性,例如控制反轉!aop不是只有spring有!其他框架也有!你可以上網查查,不過spring的aop已經很好了!