如何使用spring aop拦截或支持javax.sql.Datasource.getConnection()

时间:2017-03-24 07:48:38

标签: spring-aop

我正在尝试对javax.sql.Datasource.getConnection()进行介绍,以便在使用连接之前设置clientInfo属性。

我用COnnectionPreparer尝试了Spring ConnectionInterceptor,但它没有用。

我用javax.sql.datasource.getConnection()尝试了切入点,但没有工作。

现在,我正在尝试用下面的切入点,但是我的建议没有被执行,而是呼叫刚刚通过。

pom.xml

<!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
         </dependency>

主要班级

 @SpringBootApplication
    @Configuration
    @EnableAutoConfiguration
    @ComponentScan({ "com.xyz" })
    @EnableAspectJAutoProxy
    public class MainApplication extends SpringBootServletInitializer {

         // spring configuration here
         // cxf end point configuration
}

方面类

@Component
@Aspect
public class ClientIdentifierConnectionPreparer {

    @AfterReturning(pointcut="execution(java.sql.Connection org.springframework.jdbc.datasource.ConnectionHandle.getConnection())", returning="conn")
        public void prepare(Connection conn) {
           System.out.println("prepare connection aspect 1");        
        }


        @Before("execution(java.sql.Connection org.springframework.jdbc.datasource.ConnectionHandle.getConnection())")
        public void prepareBefore() {
           System.out.println("prepare connection aspect 2");        
        }
 }
你可以帮助

吗?

0 个答案:

没有答案