12345678910111213141516171819202122232425262728293031323334353637383940 |
- package example.aop.proxy;
- import org.aopalliance.intercept.MethodInterceptor;
- import org.aopalliance.intercept.MethodInvocation;
- import org.springframework.core.convert.support.DefaultConversionService;
- import org.springframework.data.jpa.repository.Query;
- import org.springframework.data.repository.core.support.RepositoryFactorySupport;
- public class MyMethodInterceptor implements MethodInterceptor {
- @Override
- public Object invoke(MethodInvocation invocation) throws Throwable {
- Query query = invocation.getMethod().getAnnotation(Query.class);
- if(query != null) {
- System.out.println("is native: " + query.nativeQuery());
- System.out.println("sql = " + query.value());
- }else{
- System.out.println("name = " + invocation.getMethod().getName());
- }
- return isBaseType(invocation.getMethod().getReturnType()) ? 0 : null;
- }
- /**
- * 判断object是否为基本类型
- * @return
- */
- public static boolean isBaseType(Class clazz) {
- String className = clazz.getTypeName();
- if (className.equals("int") ||
- className.equals("byte") ||
- className.equals("long") ||
- className.equals("double") ||
- className.equals("float") ||
- className.equals("char") ||
- className.equals("short") ||
- className.equals("boolean")) {
- return true;
- }
- return false;
- }
- }
|