diff --git a/mars-core/src/main/java/com/mars/core/annotation/MarsApi.java b/mars-core/src/main/java/com/mars/core/annotation/MarsApi.java
index e2b7f17..835c8e4 100644
--- a/mars-core/src/main/java/com/mars/core/annotation/MarsApi.java
+++ b/mars-core/src/main/java/com/mars/core/annotation/MarsApi.java
@@ -11,4 +11,5 @@ import java.lang.annotation.Target;
@Documented
public @interface MarsApi {
+ String refBean() default "";
}
diff --git a/mars-core/src/main/java/com/mars/core/base/config/MarsConfig.java b/mars-core/src/main/java/com/mars/core/base/config/MarsConfig.java
index da313f8..86257ad 100644
--- a/mars-core/src/main/java/com/mars/core/base/config/MarsConfig.java
+++ b/mars-core/src/main/java/com/mars/core/base/config/MarsConfig.java
@@ -55,7 +55,7 @@ public abstract class MarsConfig {
/**
* jedis配置
- * @return edis配置
+ * @return jedis配置
*/
public JedisConfig jedisConfig(){
return new JedisConfig();
diff --git a/mars-mvc/src/main/java/com/mars/mvc/logs/LogAop.java b/mars-mvc/src/main/java/com/mars/mvc/logs/LogAop.java
index 105002a..999e696 100644
--- a/mars-mvc/src/main/java/com/mars/mvc/logs/LogAop.java
+++ b/mars-mvc/src/main/java/com/mars/mvc/logs/LogAop.java
@@ -37,6 +37,7 @@ public class LogAop {
JSONObject param = JSONObject.parseObject(JSON.toJSONString(obj));
jsonObject.putAll(param);
}
+ params = jsonObject.toJSONString();
}
StringBuffer buffer = getLogInfo("开始执行","参数",params);
diff --git a/mars-mvc/src/main/java/com/mars/mvc/proxy/ExecuteRef.java b/mars-mvc/src/main/java/com/mars/mvc/proxy/ExecuteRef.java
index ec465bd..6368820 100644
--- a/mars-mvc/src/main/java/com/mars/mvc/proxy/ExecuteRef.java
+++ b/mars-mvc/src/main/java/com/mars/mvc/proxy/ExecuteRef.java
@@ -1,5 +1,6 @@
package com.mars.mvc.proxy;
+import com.mars.core.annotation.MarsApi;
import com.mars.core.annotation.MarsReference;
import com.mars.core.annotation.enums.RefType;
import com.mars.core.load.LoadHelper;
@@ -22,24 +23,26 @@ public class ExecuteRef {
/**
* 指定服务层的方法
+ * @param controlCls 被代理的类
* @param method 方法
* @param args 参数
* @return 返回值
* @throws Exception 异常
*/
- protected static Object executeRef(Method method, Object[] args) throws Exception {
+ protected static Object executeRef(Class> controlCls, Method method, Object[] args) throws Exception {
/* 根据注解获取到对应的bean对象实体 */
MarsReference marsReference = method.getAnnotation(MarsReference.class);
+ MarsApi marsApi = controlCls.getAnnotation(MarsApi.class);
/* 获取bean对象的class和实例 */
- MarsBeanModel marsBeanModel = getMarsBeanModel(marsReference);
+ MarsBeanModel marsBeanModel = getMarsBeanModel(marsReference,marsApi);
Class> cls = marsBeanModel.getCls();
Object obj = marsBeanModel.getObj();
/* 获取引用的资源名称 */
String refName = getRefName(method,marsReference);
- if(marsReference.refType().equals(RefType.METHOD)){
+ if(marsReference == null || marsReference.refType().equals(RefType.METHOD)){
/* 如果引用的是一个方法则执行bean里面对应的方法 */
Object result = executeRefMethod(cls,obj,args,refName);
if(result != null && result.equals("errorRef")){
@@ -60,17 +63,25 @@ public class ExecuteRef {
/**
* 获取要执行的bean对象
* @param marsReference 引用注解
+ * @param marsApi api注解
* @return bean对象实体类
* @throws Exception 异常
*/
- private static MarsBeanModel getMarsBeanModel(MarsReference marsReference) throws Exception {
- if(marsReference == null || StringUtil.isNull(marsReference.beanName())){
- throw new Exception("没有配置MarsReference注解或者配置不正确");
+ private static MarsBeanModel getMarsBeanModel(MarsReference marsReference, MarsApi marsApi) throws Exception {
+ String beanName = null;
+ if(marsReference != null && !StringUtil.isNull(marsReference.beanName())){
+ beanName = marsReference.beanName();
+ } else if(marsApi != null || !StringUtil.isNull(marsApi.refBean())){
+ beanName = marsApi.refBean();
}
- MarsBeanModel marsBeanModel = beanModelMap.get(marsReference.beanName());
+ if(StringUtil.isNull(beanName)){
+ throw new Exception("请检查您的MarsReference注解或者MarsApi注解是否有指定要引用的bean名称");
+ }
+
+ MarsBeanModel marsBeanModel = beanModelMap.get(beanName);
if(marsBeanModel == null){
- throw new Exception("没有找到name为["+marsReference.beanName()+"]的MarsBean");
+ throw new Exception("没有找到name为["+beanName+"]的MarsBean");
}
return marsBeanModel;
}
@@ -104,10 +115,9 @@ public class ExecuteRef {
* @return
*/
private static String getRefName(Method method,MarsReference marsReference){
- String refName = marsReference.refName();
- if(StringUtil.isNull(refName)){
+ if(marsReference == null || StringUtil.isNull(marsReference.refName())){
return method.getName();
}
- return refName;
+ return marsReference.refName();
}
}
diff --git a/mars-mvc/src/main/java/com/mars/mvc/proxy/MvcCglibProxy.java b/mars-mvc/src/main/java/com/mars/mvc/proxy/MvcCglibProxy.java
index 82ee611..b047ca3 100644
--- a/mars-mvc/src/main/java/com/mars/mvc/proxy/MvcCglibProxy.java
+++ b/mars-mvc/src/main/java/com/mars/mvc/proxy/MvcCglibProxy.java
@@ -50,7 +50,7 @@ public class MvcCglibProxy implements MethodInterceptor {
}
try{
- Object o1 = ExecuteRef.executeRef(method,args);
+ Object o1 = ExecuteRef.executeRef(cls,method,args);
if(c != null){
c.endMethod(args,o1);
diff --git a/pom.xml b/pom.xml
index b3f3bee..71dfc29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,12 +56,12 @@
org.apache.tomcat.embed
tomcat-embed-core
- 8.5.49
+ 8.5.50
org.apache.tomcat
tomcat-servlet-api
- 8.5.49
+ 8.5.50