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