diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml
new file mode 100644
index 0000000..6553b10
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-prod.yml
@@ -0,0 +1,34 @@
+server:
+ port: 8085
+# context-path: /callcenter/api
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/casic_smartcity_callcenter?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+ # session:
+ # store-type: redis
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password:
+
+#flowable数据源和多数据源配置
+casic:
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken
+ flowable:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/callcenter_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml
new file mode 100644
index 0000000..6553b10
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-prod.yml
@@ -0,0 +1,34 @@
+server:
+ port: 8085
+# context-path: /callcenter/api
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/casic_smartcity_callcenter?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+ # session:
+ # store-type: redis
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password:
+
+#flowable数据源和多数据源配置
+casic:
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken
+ flowable:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/callcenter_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml
new file mode 100644
index 0000000..54d7252
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-test.yml
@@ -0,0 +1,30 @@
+server:
+ port: 11307
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+casic:
+ # kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/**
+ #flowable数据源和多数据源配置
+ flowable:
+ datasource:
+ url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+flowable:
+ checkProcessDefinitions: false #不校验process文件
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml
new file mode 100644
index 0000000..6553b10
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-prod.yml
@@ -0,0 +1,34 @@
+server:
+ port: 8085
+# context-path: /callcenter/api
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/casic_smartcity_callcenter?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+ # session:
+ # store-type: redis
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password:
+
+#flowable数据源和多数据源配置
+casic:
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken
+ flowable:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/callcenter_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml
new file mode 100644
index 0000000..54d7252
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-test.yml
@@ -0,0 +1,30 @@
+server:
+ port: 11307
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+casic:
+ # kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/**
+ #flowable数据源和多数据源配置
+ flowable:
+ datasource:
+ url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+flowable:
+ checkProcessDefinitions: false #不校验process文件
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml
new file mode 100644
index 0000000..200ca46
--- /dev/null
+++ b/casic-web/src/main/resources/config/application.yml
@@ -0,0 +1,26 @@
+##########################################################
+################## 所有profile共有的配置 #################
+##########################################################
+spring:
+ profiles:
+ active: @activatedProperties@
+ servlet:
+ multipart:
+ max-file-size: 50MB
+ max-request-size: 80MB
+#mybatis-plus:
+# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+################### mybatis-plus配置 ###################
+################### guns配置 ###################
+casic:
+ swagger-open: false #是否开启swagger (true/false)
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ muti-datasource-open: false #是否开启多数据源(true/false)
+ spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false)
+ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒
+ session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+ no-login-urls: /user/login,/kaptcha,/config/baseConfig
+
+ config:
+ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\
+ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml
new file mode 100644
index 0000000..6553b10
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-prod.yml
@@ -0,0 +1,34 @@
+server:
+ port: 8085
+# context-path: /callcenter/api
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/casic_smartcity_callcenter?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+ # session:
+ # store-type: redis
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password:
+
+#flowable数据源和多数据源配置
+casic:
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken
+ flowable:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/callcenter_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml
new file mode 100644
index 0000000..54d7252
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-test.yml
@@ -0,0 +1,30 @@
+server:
+ port: 11307
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+casic:
+ # kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/**
+ #flowable数据源和多数据源配置
+ flowable:
+ datasource:
+ url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+flowable:
+ checkProcessDefinitions: false #不校验process文件
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml
new file mode 100644
index 0000000..200ca46
--- /dev/null
+++ b/casic-web/src/main/resources/config/application.yml
@@ -0,0 +1,26 @@
+##########################################################
+################## 所有profile共有的配置 #################
+##########################################################
+spring:
+ profiles:
+ active: @activatedProperties@
+ servlet:
+ multipart:
+ max-file-size: 50MB
+ max-request-size: 80MB
+#mybatis-plus:
+# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+################### mybatis-plus配置 ###################
+################### guns配置 ###################
+casic:
+ swagger-open: false #是否开启swagger (true/false)
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ muti-datasource-open: false #是否开启多数据源(true/false)
+ spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false)
+ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒
+ session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+ no-login-urls: /user/login,/kaptcha,/config/baseConfig
+
+ config:
+ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\
+ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\
\ No newline at end of file
diff --git a/casic-web/src/main/resources/logback-spring.xml b/casic-web/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/casic-web/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e20bc1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+**/target/**
+logs/
+*.iml
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31ba1e5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# casic项目 V1.0.0
+
+[^_^]: # (Talk is cheap,Show me the code!)
+
+## 介绍
+基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springboot + shiro + mybatis-plus !
+基于casic项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),
+可以直接作为一个后台管理系统的脚手架! 2019目标 `更简洁`,`更规范`!
+
+
+#### 其他
+>* [git地址](http://192.168.0.203:8080/gitbucket)
+>* [本地免登地址](http://localhost:8083/route/mockToken)
+
+
+
+
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
new file mode 100644
index 0000000..913a287
--- /dev/null
+++ b/casic-server/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ 2.0.0
+ ../pom.xml
+
+
+ casic-server
+ 2.0.0
+ jar
+ casic-server
+ casic 的spring boot版本
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
new file mode 100644
index 0000000..87b6fec
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java
@@ -0,0 +1,41 @@
+package com.casic.missiles.modular.system.controller;
+
+
+import com.casic.missiles.model.application.event.core.EventPublisher;
+import com.casic.missiles.model.application.event.enums.ModelEventTypeEnum;
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.modular.system.event.UserEvent;
+import com.casic.missiles.modular.system.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName DemoController
+ * @Description TODO
+ * @Author lenovo
+ * @Date 2020/6/13 15:38
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+ @Autowired
+ private EventPublisher publisher;
+
+ /**
+ * 获取mockToken
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public Object list() {
+ User user = new User();
+ user.setAccount("张三");
+ publisher.publishEvent(new UserEvent(ModelEventTypeEnum.ADD, user));
+ return ResponseData.success();
+ }
+
+
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
new file mode 100644
index 0000000..c6ed867
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/UserEvent.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.modular.system.event;
+
+import com.casic.missiles.model.application.event.core.ModelEvent;
+import com.casic.missiles.model.application.event.type.AbstractEventTypeEnum;
+import com.casic.missiles.modular.system.model.User;
+
+/**
+ * 用户事件
+ *
+ * @author lwh
+ */
+public class UserEvent extends ModelEvent {
+ /**
+ * Create a new {@code ApplicationEvent}.
+ *
+ * @param type 事件类型
+ * @param source the object on which the event initially occurred or with
+ * which the event is associated (never {@code null})
+ */
+ public UserEvent(AbstractEventTypeEnum type, User source) {
+ super(type, source);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
new file mode 100644
index 0000000..4480ef2
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserOneListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.core.application.event.UserLoginEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserOneListener {
+ @EventListener
+ public void onApplicationEvent(UserLoginEvent event) {
+ log.debug("用户1订阅:{}", event);
+ }
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
new file mode 100644
index 0000000..8447a22
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/event/listener/UserTwoListener.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.system.event.listener;
+
+import com.casic.missiles.model.application.event.core.EventSubscriber;
+import com.casic.missiles.modular.system.event.UserEvent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户事件订阅
+ *
+ * @author lwh
+ */
+@Slf4j
+@Component
+public class UserTwoListener extends EventSubscriber {
+ @Override
+ public void onApplicationEvent(UserEvent event) {
+ log.debug("用户2订阅:{}", event);
+ }
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
new file mode 100644
index 0000000..73e9d68
--- /dev/null
+++ b/casic-web/pom.xml
@@ -0,0 +1,171 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-template
+ ../pom.xml
+ 2.0.0
+
+ casic-web
+ 2.0.0
+ jar
+ casic-web
+ casic web启动入口
+
+
+
+ dev
+
+ true
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 1.8
+
+
+ com.casic
+ casic-area-starter
+ ${admin.version}
+
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+
+ /config/*-*.yml
+ **/MockController.class
+
+
+
+ com.casic.missiles.CasicApplication
+ true
+ ./
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ ${maven.assembly.plugin.version}
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven.war.plugin.version}
+
+
+
+
+ src/main/resources
+
+
+ /config/*/*
+ /config/*-*.yml
+
+ true
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/build/bin/start.bat b/casic-web/src/main/build/bin/start.bat
new file mode 100644
index 0000000..1db4e88
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.bat
@@ -0,0 +1,4 @@
+@echo off
+title ${project.build.finalName}
+java -jar ./lib/${project.build.finalName}.jar
+@pause
diff --git a/casic-web/src/main/build/bin/start.sh b/casic-web/src/main/build/bin/start.sh
new file mode 100644
index 0000000..c00b1ef
--- /dev/null
+++ b/casic-web/src/main/build/bin/start.sh
@@ -0,0 +1,2 @@
+java -jar ./lib/${project.build.finalName}.jar
+
diff --git a/casic-web/src/main/build/package.xml b/casic-web/src/main/build/package.xml
new file mode 100644
index 0000000..c9259ad
--- /dev/null
+++ b/casic-web/src/main/build/package.xml
@@ -0,0 +1,43 @@
+
+
+ package
+
+ zip
+ tar.gz
+
+ true
+
+
+
+ true
+ true
+ lib
+ runtime
+
+
+
+
+ src/main/build/bin
+
+ start.bat
+ start.sh
+
+ true
+ 0744
+ /
+
+
+ src/main/resources/config
+ true
+
+ *.yml
+ /*/*
+
+ /config
+
+
+ src/main/resources/i18n
+ /
+
+
+
\ No newline at end of file
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
new file mode 100644
index 0000000..739eb99
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -0,0 +1,28 @@
+package com.casic.missiles;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author lwh
+ * @Date 2021/06/06 12:06
+ */
+@SpringBootApplication
+@EnableCaching
+@EnableTransactionManagement(proxyTargetClass = true)
+@EnableAsync
+@Slf4j
+public class CasicApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CasicApplication.class, args);
+ log.info("CasicApplication is success!");
+ }
+
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
new file mode 100644
index 0000000..e30585b
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/CasicServletInitializer.java
@@ -0,0 +1,18 @@
+package com.casic.missiles;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class CasicServletInitializer extends SpringBootServletInitializer {
+
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
+ return application.sources(CasicApplication.class);
+ }
+}
diff --git a/casic-web/src/main/java/com/casic/missiles/controller/MockController.java b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
new file mode 100644
index 0000000..eae6c54
--- /dev/null
+++ b/casic-web/src/main/java/com/casic/missiles/controller/MockController.java
@@ -0,0 +1,82 @@
+package com.casic.missiles.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.casic.missiles.core.application.enums.LoginType;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.model.auth.CasicCustomToken;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.core.util.RSAUtils;
+import com.casic.missiles.model.response.SuccessResponseData;
+import com.casic.missiles.modular.domain.constants.PermissionConstants;
+import com.casic.missiles.modular.interfaces.log.LogManager;
+import com.casic.missiles.modular.interfaces.log.factory.LogTaskFactory;
+import com.casic.missiles.modular.system.dto.LoginSuccessDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.subject.Subject;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Map;
+
+import static com.casic.missiles.core.util.HttpContext.getIp;
+
+
+/**
+ * 仅为mock登录使用
+ *
+ * @author lenovo
+ */
+@Controller
+@RequestMapping("/route")
+@Slf4j
+public class MockController extends BaseController {
+
+ /**
+ * 获取mockToken
+ */
+ @GetMapping("/mockToken")
+ @ResponseBody
+ public Object mockToken(String username, String password) {
+ super.getSession().setAttribute(PermissionConstants.IS_APP, false);
+ SuccessResponseData resultData = new SuccessResponseData();
+ if (StrUtil.hasEmpty(username, password)) {
+ username = "admin";
+ password = "111111";
+ }
+ Subject currentUser = ShiroKit.getSubject();
+
+ try {
+ Map key = RSAUtils.genKeyPair();
+ ShiroKit.getSession().setAttribute(PermissionConstants.PRIVATE_KEY, key.get(RSAUtils.RSAPrivateKey));
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ //token自定义
+ CasicCustomToken token = new CasicCustomToken(username, password);
+ token.setType(LoginType.PASSWORD);
+ token.setRememberMe(false);
+
+ try {
+ currentUser.login(token);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ AuthUser shiroUser = ShiroKit.getUser();
+ super.getSession().setAttribute("shiroUser", shiroUser);
+ super.getSession().setAttribute("username", shiroUser.getAccount());
+ super.getSession().setAttribute(PermissionConstants.SESSION_KEY, shiroUser.getId());
+
+ LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+ ShiroKit.getSession().setAttribute("sessionFlag", true);
+ resultData.setData(new LoginSuccessDTO(ShiroKit.getSession().getId().toString(), null));
+ resultData.setMessage("登录成功");
+ return resultData;
+ }
+}
diff --git a/casic-web/src/main/resources/META-INF/spring-devtools.properties b/casic-web/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..e3b0a7f
--- /dev/null
+++ b/casic-web/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.7.15.jar
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml
new file mode 100644
index 0000000..8c18554
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-dev.yml
@@ -0,0 +1,30 @@
+server:
+ port: 8083
+################### spring配置 ###################
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://111.198.10.15:11336/casic_template2.0?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true
+ username: root
+ password: Casic203
+jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+# redis:
+# host: 111.198.10.15
+# port: 11412
+# password: ew5T4K3#203lwh
+# serializer: org.springframework.data.redis.serializer.StringRedisSerializer
+# redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
+casic:
+ #kaptcha-open: false #是否开启登录时验证码 (true/false)
+ no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken
+ #flowable数据源和多数据源配置
+ db:
+ init:
+ enable: false
+logging:
+ level.root: info
+ level.com.casic: debug
+ level.org.springframework.web: info
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-prod.yml b/casic-web/src/main/resources/config/application-prod.yml
new file mode 100644
index 0000000..6553b10
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-prod.yml
@@ -0,0 +1,34 @@
+server:
+ port: 8085
+# context-path: /callcenter/api
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/casic_smartcity_callcenter?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+ # session:
+ # store-type: redis
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password:
+
+#flowable数据源和多数据源配置
+casic:
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken
+ flowable:
+ datasource:
+ url: jdbc:mysql://10.18.0.20:3306/callcenter_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application-test.yml b/casic-web/src/main/resources/config/application-test.yml
new file mode 100644
index 0000000..54d7252
--- /dev/null
+++ b/casic-web/src/main/resources/config/application-test.yml
@@ -0,0 +1,30 @@
+server:
+ port: 11307
+################### spring配置 ###################
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/casic_template?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+ initial-size: 2
+ min-idle: 1
+ jms:
+ pub-sub-domain: true
+# session:
+# store-type: redis
+casic:
+ # kaptcha-open: false #是否开启登录时验证码 (true/false)
+ nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken,/workflow/**
+ #flowable数据源和多数据源配置
+ flowable:
+ datasource:
+ url: jdbc:mysql://localhost:3306/template_flowable?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: Casic203!
+flowable:
+ checkProcessDefinitions: false #不校验process文件
+logging:
+ level.root: info
+ level.com.casic: debug
+ path: logs/
+ file: missiles.log
\ No newline at end of file
diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml
new file mode 100644
index 0000000..200ca46
--- /dev/null
+++ b/casic-web/src/main/resources/config/application.yml
@@ -0,0 +1,26 @@
+##########################################################
+################## 所有profile共有的配置 #################
+##########################################################
+spring:
+ profiles:
+ active: @activatedProperties@
+ servlet:
+ multipart:
+ max-file-size: 50MB
+ max-request-size: 80MB
+#mybatis-plus:
+# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+################### mybatis-plus配置 ###################
+################### guns配置 ###################
+casic:
+ swagger-open: false #是否开启swagger (true/false)
+ kaptcha-open: false #是否开启登录时验证码 (true/false)
+ muti-datasource-open: false #是否开启多数据源(true/false)
+ spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false)
+ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒
+ session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+ no-login-urls: /user/login,/kaptcha,/config/baseConfig
+
+ config:
+ export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\
+ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\
\ No newline at end of file
diff --git a/casic-web/src/main/resources/logback-spring.xml b/casic-web/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..c0c7ac9
--- /dev/null
+++ b/casic-web/src/main/resources/logback-spring.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_error.log
+
+
+
+
+
+ ${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+ error
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+ ${LOG_PATH}/missiles_total.log
+
+
+
+
+
+ ${LOG_PATH}/total/log-total-%d{yyyy-MM-dd}.%i.log
+
+
+
+ 10MB
+
+
+
+
+ true
+
+
+
+ ${FILE_LOG_PATTERN}
+ utf-8
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..7e80eeb
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,146 @@
+
+ 4.0.0
+ com.casic
+ casic-template
+ 2.0.0
+ casic-template
+ pom
+
+ casic-web
+ casic-server
+
+
+ com.casic
+ casic-boot-starter-parent
+ 2.0.0.alpha
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+ 2.0.0
+
+ 2.0.0.alpha
+
+ 2.0.0.alpha
+
+
+
+ 3.2.1
+ 1.7
+ 3.6
+ 2.6.11
+ 1.0.3
+ 3.4.5
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mybatis-plus-boot-starter}
+
+
+
+ com.alibaba
+ druid
+ ${druid.version}
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.plugin.version}
+
+
+
+
+
+
+
+
+
+
+ cn.smallbun.screw
+ screw-maven-plugin
+ ${screw.version}
+
+
+
+ com.zaxxer
+ HikariCP
+ ${hikari.version}
+
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.driver.version}
+
+
+
+
+ root
+
+ casic203!
+
+
+ com.mysql.jdbc.Driver
+
+ jdbc:mysql://localhost:3306/casic_template?useSSL=false
+
+ WORD
+
+ true
+
+ freemarker
+
+
+ 基础权限库
+
+ ${pro.version}
+
+ 基础库文档速查
+
+
+
+ compile
+
+ run
+
+
+
+
+
+
+
+
\ No newline at end of file