diff --git a/mars-aop/src/main/java/com/mars/aop/proxy/CglibProxy.java b/mars-aop/src/main/java/com/mars/aop/proxy/CglibProxy.java
index 3d6acce..adec666 100644
--- a/mars-aop/src/main/java/com/mars/aop/proxy/CglibProxy.java
+++ b/mars-aop/src/main/java/com/mars/aop/proxy/CglibProxy.java
@@ -44,8 +44,12 @@ public class CglibProxy implements MethodInterceptor {
@Override
public Object intercept(Object o, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
Object obj = null;
+ Class c = null;
+
AopModel aopModel = list.get(method.getName());
- Class c = aopModel.getCls();
+ if(aopModel != null){
+ c = aopModel.getCls();
+ }
if(c != null){
obj = c.getDeclaredConstructor().newInstance();
if(c.getName().equals(MarsConstant.TRACTION_CLASS)){
diff --git a/mars-core/mars-core.iml b/mars-core/mars-core.iml
index d3b77a5..e8eeba7 100644
--- a/mars-core/mars-core.iml
+++ b/mars-core/mars-core.iml
@@ -5,6 +5,7 @@
+
@@ -14,8 +15,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mars-core/src/main/java/com/mars/core/after/StartAfter.java b/mars-core/src/main/java/com/mars/core/after/StartAfter.java
index 461dddd..61fe693 100644
--- a/mars-core/src/main/java/com/mars/core/after/StartAfter.java
+++ b/mars-core/src/main/java/com/mars/core/after/StartAfter.java
@@ -2,9 +2,13 @@ package com.mars.core.after;
import com.mars.core.constant.MarsConstant;
import com.mars.core.constant.MarsSpace;
+import com.mars.core.load.LoadHelper;
+import com.mars.core.load.WriteFields;
+import com.mars.core.model.MarsBeanModel;
import java.lang.reflect.Method;
import java.util.List;
+import java.util.Map;
/**
* 框架启动后立刻执行
@@ -24,8 +28,15 @@ public class StartAfter {
if(afterObjects != null) {
List easyLoads = (List)afterObjects;
+ Map beanModelMap = LoadHelper.getBeanObjectMap();
+
for(Class cls : easyLoads){
Object obj = cls.getDeclaredConstructor().newInstance();
+
+ /* 注入属性 */
+ WriteFields.writeFields(cls,obj,beanModelMap);
+
+ /* 执行after方法 */
Method method2 = cls.getDeclaredMethod("after");
method2.invoke(obj);
}
diff --git a/mars-core/src/main/java/com/mars/core/annotation/MarsTimer.java b/mars-core/src/main/java/com/mars/core/annotation/MarsTimer.java
index 945c7d8..4953416 100644
--- a/mars-core/src/main/java/com/mars/core/annotation/MarsTimer.java
+++ b/mars-core/src/main/java/com/mars/core/annotation/MarsTimer.java
@@ -11,5 +11,5 @@ public @interface MarsTimer {
* 循环间隔
* @return
*/
- long loop();
+ int loop() default 60000;
}
diff --git a/mars-core/src/main/java/com/mars/core/constant/MarsConstant.java b/mars-core/src/main/java/com/mars/core/constant/MarsConstant.java
index 5d0087c..9325f34 100644
--- a/mars-core/src/main/java/com/mars/core/constant/MarsConstant.java
+++ b/mars-core/src/main/java/com/mars/core/constant/MarsConstant.java
@@ -33,6 +33,10 @@ public class MarsConstant {
* 记录是否已经调用完createBean方法了
*/
public static final String HAS_START="hasStart";
+ /**
+ * 记录netty是否已经启动了
+ */
+ public static final String HAS_NETTY_START="hasNettyStart";
/**
* 记录是否已经启动过单测了
*/
@@ -68,6 +72,11 @@ public class MarsConstant {
*/
public static final String MARS_BEAN_OBJECTS = "marsBeanObjects";
+ /**
+ * 所有加了MarsTimer注解的方法
+ */
+ public static final String MARS_TIMER_OBJECTS = "marsTimerObjects";
+
/**
* 接受远程配置中心通知的controller
*/
diff --git a/mars-core/src/main/java/com/mars/core/load/LoadHelper.java b/mars-core/src/main/java/com/mars/core/load/LoadHelper.java
new file mode 100644
index 0000000..d2c6d46
--- /dev/null
+++ b/mars-core/src/main/java/com/mars/core/load/LoadHelper.java
@@ -0,0 +1,118 @@
+package com.mars.core.load;
+
+import com.mars.core.annotation.MarsBean;
+import com.mars.core.annotation.Resource;
+import com.mars.core.constant.MarsConstant;
+import com.mars.core.constant.MarsSpace;
+import com.mars.core.model.MarsBeanModel;
+import com.mars.core.model.MarsTimerModel;
+import com.mars.core.util.StringUtil;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 加载工具类
+ */
+public class LoadHelper {
+
+ /**
+ * 获取全局存储空间
+ */
+ private static MarsSpace constants = MarsSpace.getEasySpace();
+
+ /**
+ * 获取Bean的名称
+ * @param map
+ * @param cls
+ * @return
+ */
+ public static String getBeanName(Map map,Class> cls){
+ MarsBean marsBean = (MarsBean)map.get("annotation");
+ String beanName = marsBean.value();
+ return getBeanName(beanName,cls);
+ }
+
+ /**
+ * 获取Bean的名称
+ * @param cls
+ * @return
+ */
+ public static String getBeanName(String beanName,Class> cls){
+ if(beanName == null || beanName.equals("")) {
+ beanName = StringUtil.getFirstLowerCase(cls.getSimpleName());
+ }
+ return beanName;
+ }
+
+ /**
+ * 获取字段名
+ * @param resource
+ * @param f
+ * @return
+ */
+ public static String getResourceName(Resource resource, Field f){
+ String filedName = resource.value();
+ if(filedName == null || filedName.equals("")) {
+ filedName = f.getName();
+ }
+ return filedName;
+ }
+
+ /**
+ * 获取所有的加了MarsBean注解的基础数据
+ * @return
+ */
+ public static List