diff --git a/README.md b/README.md index c225ef6..9879e1f 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,10 @@ controller主要负责转发、service主要负责业务逻辑、dao主要是数 ![](https://github.com/javanan/slife/blob/master/dec/4.jpg?raw=true) +## Spring Boot Admin 监控 +![](https://github.com/javanan/slife/blob/master/dec/11.png?raw=true) +![](https://github.com/javanan/slife/blob/master/dec/11-1.png?raw=true) + ## Activit工作流 diff --git a/dec/11-1.png b/dec/11-1.png new file mode 100644 index 0000000..4fe2e89 Binary files /dev/null and b/dec/11-1.png differ diff --git a/dec/11.png b/dec/11.png new file mode 100644 index 0000000..cda70ba Binary files /dev/null and b/dec/11.png differ diff --git a/pom.xml b/pom.xml index e6a10f7..b1530da 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ slife-wx-applet slife-activiti slife-log - slife-test + slife-blog @@ -138,10 +138,12 @@ spring-boot-starter-jdbc + org.springframework.boot diff --git a/slife-boota-dmin/pom.xml b/slife-boota-dmin/pom.xml new file mode 100644 index 0000000..88819d1 --- /dev/null +++ b/slife-boota-dmin/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + com.slife + slife-boot-admin + 0.0.1-SNAPSHOT + jar + + slife-boot-admin + spring boot admin + + + org.springframework.boot + spring-boot-starter-parent + 1.5.9.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + de.codecentric + spring-boot-admin-server + 1.5.5 + + + de.codecentric + spring-boot-admin-server-ui + 1.5.5 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/slife-boota-dmin/src/main/java/com/slife/SlifeBootAdminApplication.java b/slife-boota-dmin/src/main/java/com/slife/SlifeBootAdminApplication.java new file mode 100644 index 0000000..b2813a0 --- /dev/null +++ b/slife-boota-dmin/src/main/java/com/slife/SlifeBootAdminApplication.java @@ -0,0 +1,17 @@ +package com.slife; + +import de.codecentric.boot.admin.config.EnableAdminServer; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author chen + */ +@SpringBootApplication +@EnableAdminServer +public class SlifeBootAdminApplication { + + public static void main(String[] args) { + SpringApplication.run(SlifeBootAdminApplication.class, args); + } +} diff --git a/slife-boota-dmin/src/main/resources/application-dev.yml b/slife-boota-dmin/src/main/resources/application-dev.yml new file mode 100644 index 0000000..e69de29 diff --git a/slife-boota-dmin/src/main/resources/application-pro.yml b/slife-boota-dmin/src/main/resources/application-pro.yml new file mode 100644 index 0000000..e69de29 diff --git a/slife-boota-dmin/src/main/resources/application.yml b/slife-boota-dmin/src/main/resources/application.yml new file mode 100644 index 0000000..558b339 --- /dev/null +++ b/slife-boota-dmin/src/main/resources/application.yml @@ -0,0 +1,19 @@ +server: + port: 8002 + + +spring: + profiles: + active: dev + application: + name: slife-boot-admin + + + + + + + + + + diff --git a/slife-boota-dmin/src/test/java/com/slife/SlifeBootAdminApplicationTests.java b/slife-boota-dmin/src/test/java/com/slife/SlifeBootAdminApplicationTests.java new file mode 100644 index 0000000..91e4c09 --- /dev/null +++ b/slife-boota-dmin/src/test/java/com/slife/SlifeBootAdminApplicationTests.java @@ -0,0 +1,16 @@ +package com.slife; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class SlifeBootAdminApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/slife-common/src/main/java/com/slife/constant/Global.java b/slife-common/src/main/java/com/slife/constant/Global.java index 7168a69..6c53fb9 100644 --- a/slife-common/src/main/java/com/slife/constant/Global.java +++ b/slife-common/src/main/java/com/slife/constant/Global.java @@ -27,4 +27,8 @@ public class Global { * 树的顶级 节点id */ public static final Long TOP_TREE_NODE = 0L; + /** + * 管理员id + */ + public static final Long ADMIN_ID =1L ; } diff --git a/slife-sys/src/main/java/com/slife/controller/SysTestController.java b/slife-sys/src/main/java/com/slife/controller/SysTestController.java index 2b12002..e685223 100644 --- a/slife-sys/src/main/java/com/slife/controller/SysTestController.java +++ b/slife-sys/src/main/java/com/slife/controller/SysTestController.java @@ -1,11 +1,7 @@ package com.slife.controller; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; 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; /** * Created by chen on 2017/9/28. @@ -17,13 +13,13 @@ import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping(value = "/test1") public class SysTestController { - @Autowired - private StringRedisTemplate stringRedisTemplate; + // @Autowired + // private StringRedisTemplate stringRedisTemplate; - @ResponseBody +/* @ResponseBody @GetMapping(value = "/redisTest") public void redisTest(){ stringRedisTemplate.opsForValue().set("xxx","dddd"); stringRedisTemplate.opsForSet().add("2","x","c"); - } + }*/ } diff --git a/slife-sys/src/main/java/com/slife/controller/SysUserController.java b/slife-sys/src/main/java/com/slife/controller/SysUserController.java index fc2798e..5191080 100644 --- a/slife-sys/src/main/java/com/slife/controller/SysUserController.java +++ b/slife-sys/src/main/java/com/slife/controller/SysUserController.java @@ -53,10 +53,12 @@ public class SysUserController extends BaseController { * * @throws Exception */ - @PostMapping(value = "/exportUserList") + @GetMapping(value = "/exportUserList") @ResponseBody - public void exportCollectCustomerList(@RequestBody DataTable dt, HttpServletResponse response) throws Exception { - List users = sysUserService.pageSearch(dt).getRows(); + public void exportCollectCustomerList(HttpServletResponse response) throws Exception { + + + List users = sysUserService.selectList(null); //导出数据 String excelTitle = "用户列表"; diff --git a/slife-sys/src/main/java/com/slife/entity/SysUser.java b/slife-sys/src/main/java/com/slife/entity/SysUser.java index a013c27..3a8fd73 100644 --- a/slife-sys/src/main/java/com/slife/entity/SysUser.java +++ b/slife-sys/src/main/java/com/slife/entity/SysUser.java @@ -177,7 +177,7 @@ public class SysUser extends CompanyLinkEntity { public static boolean isAdmin(Long id) { - return id != null && "1".equals(id); + return id != null && id.equals(Global.ADMIN_ID); } @Override diff --git a/slife-sys/src/main/resources/templates/user/list.ftl b/slife-sys/src/main/resources/templates/user/list.ftl index 9dd8242..e3ac126 100644 --- a/slife-sys/src/main/resources/templates/user/list.ftl +++ b/slife-sys/src/main/resources/templates/user/list.ftl @@ -146,7 +146,8 @@ function dt_explort_buttont() { - export_data( getcolumns(), {"createDate": "desc"}); + + location.href=url + "exportUserList"; } diff --git a/slife-web/pom.xml b/slife-web/pom.xml index 6d3983d..804d3c1 100644 --- a/slife-web/pom.xml +++ b/slife-web/pom.xml @@ -23,6 +23,13 @@ + + + de.codecentric + spring-boot-admin-starter-client + 1.5.5 + + com.github.drtrang druid-spring-boot-starter diff --git a/slife-web/src/main/java/com/slife/config/shiro/ShiroConfig.java b/slife-web/src/main/java/com/slife/config/shiro/ShiroConfig.java index 7d1dbc3..cc59a86 100644 --- a/slife-web/src/main/java/com/slife/config/shiro/ShiroConfig.java +++ b/slife-web/src/main/java/com/slife/config/shiro/ShiroConfig.java @@ -59,6 +59,22 @@ public class ShiroConfig { filterChainDefinitionMap.put("/img/**","anon"); filterChainDefinitionMap.put("/fonts/**","anon"); + filterChainDefinitionMap.put("/health/**","anon"); + filterChainDefinitionMap.put("/env/**","anon"); + filterChainDefinitionMap.put("/metrics/**","anon"); + filterChainDefinitionMap.put("/trace/**","anon"); + filterChainDefinitionMap.put("/dump/**","anon"); + filterChainDefinitionMap.put("/jolokia/**","anon"); + filterChainDefinitionMap.put("/info/**","anon"); + filterChainDefinitionMap.put("/logfile/**","anon"); + filterChainDefinitionMap.put("/refresh/**","anon"); + filterChainDefinitionMap.put("/flyway/**","anon"); + filterChainDefinitionMap.put("/liquibase/**","anon"); + filterChainDefinitionMap.put("/heapdump/**","anon"); + filterChainDefinitionMap.put("/loggers/**","anon"); + filterChainDefinitionMap.put("/auditevents/**","anon"); + + filterChainDefinitionMap.put("/layouts/**","anon"); filterChainDefinitionMap.put("/attach/**","anon"); diff --git a/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java b/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java index 954427c..de4d01d 100644 --- a/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java +++ b/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java @@ -15,7 +15,7 @@ public class WebSiteMeshFilter extends ConfigurableSiteMeshFilter { /** 需要装饰的访问路径 */ private String contentPath="/sys/user,/sys/menu,/sys/dict,/sys/role,/sys/office,/sys/,/index,/monitor/*," + - "/blog/content**,/404,/model,/process"; + "/blog/content**,/404,/model,/druid*"; /** 装饰器页面路径 */ @@ -23,7 +23,7 @@ public class WebSiteMeshFilter extends ConfigurableSiteMeshFilter { /** 不需要装饰的访问路径,多个之间用英文逗号分隔 */ - private String excludedPaths=""; + private String excludedPaths="*.js,*.css"; @Override protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) { diff --git a/slife-web/src/main/resources/application.yml b/slife-web/src/main/resources/application.yml index 6739e3f..89d31ad 100644 --- a/slife-web/src/main/resources/application.yml +++ b/slife-web/src/main/resources/application.yml @@ -14,6 +14,13 @@ spring: request-context-attribute: rc charset: UTF-8 + boot: + admin: + url: http://localhost:8002 + client: + enabled: true + + redis: database: 0 host: 10.10.20.100 @@ -54,8 +61,16 @@ sitemesh: server: port: 8081 +management: + security: + enabled: false +logging: + file: "logs/slife.log" + +logging.level.project.user.UserClient: DEBUG + mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.slife.entity @@ -75,3 +90,4 @@ mybatis-plus: security: basic: enabled: false + diff --git a/slife-web/src/main/resources/static/js/slife/datatable.js b/slife-web/src/main/resources/static/js/slife/datatable.js index 6ccf5b3..f6982cf 100644 --- a/slife-web/src/main/resources/static/js/slife/datatable.js +++ b/slife-web/src/main/resources/static/js/slife/datatable.js @@ -116,17 +116,7 @@ function export_data(columns, sorts) { }); - - var from = $("#export"); - $("input,select").each(function () { - if ($(this).attr("name") != undefined) { - from.append(""); - } - }); - from.attr("method", "post"); - from.attr("action", url + "exportUserList"); - from.submit(); - from.empty(); + }