我正在尝试对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");
}
}
你可以帮助吗?