Giter VIP home page Giter VIP logo

zyl19880411 / koalas-web Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 2.0 4.5 MB

工作之余先来写了一个不算规范的简单架子 基于spring mvc + spring + mybatis + Spring shrio 基于redis的集群方案 系统权限部分,分成多个机构,其中每个机构也有自己的子机构,子机构继承的部分权限,其中每个机构拥有自己的角色和用户,角色的权限是机构中的权限,用户选择角色只能从对应机构中的角色进行选择,机构中的用户创建子机构对子机构进行授权,创建角色对角色进行授权,创建用户对用户设置角色,系统有一个超级管理员,对机构角色和用户拥有删除功能,其他机构中的管理员只有授权,创建等功能,实现了分级授权的功能,并且每个机构拥有自己的小组,机构下的用户所属其中的小组,从而对小组中的用户进行消息下发,短信下发,邮件下发等提供快捷操作, 集中对应关系是 用户----角色------机构 ,角色-----权限,机构-----权限,机构----子机构,用户----小组-----机构 基于数据库表的spring 定时任务 支持集群部署 可制定执行任务和执行时间,删除添加操作等等

License: Apache License 2.0

Java 4.82% FreeMarker 0.06% CSS 22.03% JavaScript 11.76% PLpgSQL 61.33%

koalas-web's Introduction






code style 996icu

一:项目介绍

基于spring mvc + spring + mybatis + Spring shrio 基于redis的集群方案

系统权限部分,分成多个机构,其中每个机构也有自己的子机构,子机构继承的部分权限,其中每个机构拥有自己的角色和用户,角色的权限是机构中的权限,用户选择角色只能从对应机构中的角色进行选择,机构中的用户创建子机构对子机构进行授权,创建角色对角色进行授权,创建用户对用户设置角色,系统有一个超级管理员,对机构角色和用户拥有删除功能,其他机构中的管理员只有授权,创建等功能,实现了分级授权的功能,并且每个机构拥有自己的小组,机构下的用户所属其中的小组,从而对小组中的用户进行消息下发,短信下发,邮件下发等提供快捷操作, 集中对应关系是 用户----角色------机构 ,角色-----权限,机构-----权限,机构----子机构,用户----小组-----机构

基于数据库表的spring 定时任务 支持集群部署 可制定执行任务和执行时间,删除添加操作等等,使用方式,下载之后clena install,tomcat7 -run直接可以运行,或者打war包部署到tomcat中,sql文件在resources里面。超级管理员账户:admin,密码123456

1:为什么要写这个web框架

市面上常见的web框架很多,但是随着越来越多的元素加入,复杂的架构设计等因素似使得这些框架和spring一样,虽然号称是轻量级,但是用起来却是让我们很蹩脚,大量的配置,繁杂的API设计,其实,我们根本用不上这些东西!!! 我也算得上是在很多个互联网企业厮杀过,见过很多很多的内部RPC框架,有些优秀的设计让我非常赞赏,有一天我突然想着,为什么不对这些设计原型进行聚合归类,自己搞一套【轻量级】web框架呢,碍于工作原因,一直没有时间倒腾出空,十一期间工作闲暇,说搞就搞吧,落地不易,希望源码对大家对认识web框架起到推进的作用。东西越写越多,有各种问题欢迎随时拍砖

2:为什么叫koalas

树袋熊英文翻译,希望考拉 web给那些不太喜欢动手自己去造轮子的人提供可靠的web使用环境

3:技术栈
  • spring-core-4.2.5,spring-context-4.2.5,spring-beans-4.2.5等spring源码
  • log4j,slf4j
  • io.netty4
  • fastJson
  • spring shrio
  • zookeeper
  • AOP,反射代理等
  • spring mybatis

二:如何安装项目

将项目下载到本地,如果顺利的话直接直接可以编译通过,在本地先clean install之后 通过tomcat或者jetty脚本来启动koalas-web,脚本在pom文件中已经写好 在启动之前首先把sql文件执行到mysql中,文件路径src/main/resources/koalasweb.sql

三:相关页面以及功能展示

1:主页面

输入图片说明

2:用户管理界面

输入图片说明

3:用户添加界面

输入图片说明

4:用户角色界面

输入图片说明

5:角色管理界面

输入图片说明

6:角色添加界面

输入图片说明

7:角色授权界面

输入图片说明

8:菜单管理界面

输入图片说明

9:菜单修改界面

输入图片说明

10:机构管理界面

输入图片说明

11:机构授权界面

输入图片说明

12:团队查询界面

输入图片说明

13:系统监控界面

输入图片说明

14:定时任务界面

输入图片说明

15:任务添加界面

输入图片说明

16:表达式生成界面

输入图片说明

17:定时任务执行结果页面

输入图片说明

三:集群环境如何开启

很多小伙伴想通过redis开启集群环境,通过redis存储cookie和session信息,开始方式如下:在src/main/resources/spring/spring-shiro.xml文件中 将集群配置打开即可。

 <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
	<property name="realm" ref="myRealm" />
	<!-- 单机环境下缓存配置 -->
	<property name="cacheManager" ref="shiroEhcacheManager" />
	<!-- 集群环境下缓存配置 -->
	<!-- <property name="cacheManager" ref="customShiroCacheManager" /> -->
	<property name="sessionManager" ref="sessionManager"/>
	<property name="rememberMeManager" ref="rememberMeManager"/>
 </bean>

按照注释打开cacheManager配置即可,自己选择单机环境或者集群环境。

 <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
	<property name="globalSessionTimeout" value="18000000"/>
        <property name="deleteInvalidSessions" value="true"/>
	<property name="sessionIdCookieEnabled" value="true"/>
	<property name="sessionIdCookie" ref="sessionIdCookie"/>
	<!--  单机环境下不需要注入 -->
	<!--  <property name="sessionDAO" ref="customShiroSessionDAO"/> -->
 </bean>

重写sessionDao,将sessionDAO配置打开,这样集群配置就已经打开了,用户登录信息session已经cache就会被redis接管,是不是很方便?

四:属性配置说明

1:配置说明
参数 说明
muze.doc.driver mysql驱动路径
muze.doc.url mysql地址
muze.doc.username mysql账号
muze.doc.password mysql密码
muze.doc.initialSize mysql初始连接数量
muze.doc.maxActive mysql最大活动数量
muze.doc.minIdle mysql最低闲置连接数量
muze.doc.maxIdle mysql最大闲置连接数量
muze.doc.maxWait mysql超时最大等待时间
muze.session.maxActive redis最大活动数量
muze.session.maxIdle redis最大闲置连接数量
muze.session.minIdle redis最低闲置连接数量
muze.session.maxWait redis超时最大等待时间
muze.session.host redis ip
muze.session.port redis 端口
muze.session.timeout redis超时时间
muze.cache.timeout spring shrio缓存超时时间

五:联系作者

高级java QQ群:825199617 博客地址:https://www.cnblogs.com/zyl2016/

koalas-web's People

Contributors

zyl19880411 avatar

Stargazers

Big Bird avatar  avatar

Watchers

James Cloos avatar

Forkers

moyu3390 bellmit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.