基于SpingBoot框架的企业办公管理系统,附源码(基于springboot的oa办公系统)

基于SpingBoot框架的企业办公管理系统,附源码(基于springboot的oa办公系统)基于SpingBoot框架的企业办公管理系统,附源码(基于springboot的oa办公系统)

企业办公管理系统,可以提供强大的模块化服务,帮助企业进行诸如制定计划、组织活动、上班考勤、领导管理和日志记录等功能,各个部分以模块化进行划分,软件具体可以分为部门管理、角色管理、用户管理、考勤管理、日志管理等部分。

这个系统使用了现在很流行的开发软件和相关技术,使用了目前最流行最方便的JAVA框架——SpringBoot框架,安全的Shiro权限管理解决方案、前端使用了Thymeleaf作为模板语言,关系型数据库框架——mybatis,其中的MySQL数据库是中小型数据处理的最优选择方案。

SpringBoot框架是继spingMVC框架之后的有一个非常受欢迎的框架,具有很高的实用性,大大地减少了框架搭建之时的各种配置工作。是目前最优秀的JAVA框架,可以说是当SpringBoot框架出现之后,别的框架就黯然失色。该特性使开发人员能够摆脱复杂的配置工作和依赖的管理工作,更加关注业务逻辑。

项目特点

1.项目基于SpringBoot,简化了大量的配置和Maven依赖。
2.日志记录系统,记录用户的登陆、登出,用户执行的操作,通过@BizLog注解以及Spring中的AOP功能,记录了具体到用户的业务操作、登入登出,并且可以下载excel格式,方便查看。
3.利用Thymeleaf使得前端html代码看起来更加清晰。
4.通过角色管理来配置菜单,达到菜单为不同部门显示的目的,间接实现了权限的管理。
5.创建表后,通过LinGenerater类可生成包括html、js、Dao、Service、Controller等代码,复制进项目可直接使用。

javaBean方式的配置文件

Lin中摒弃了传统的xml配置文件,使得配置文件更加清晰、简洁,下列为Shrio配置文件中的片段

@Configurationpublic class ShiroConfig { /** * 安全管理器 * @param rememberMeManager * @return */ @Bean public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager){ DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRememberMeManager(rememberMeManager); securityManager.setRealm(this.shiroDbRealm()); return securityManager; } @Bean public ShiroDbRealm shiroDbRealm(){ return new ShiroDbRealm(); }

代码生成

项目借助Mybatis Plus代码生成器生成Bean以及Dao,通过Velocity生成Controller、Service、ServiceImpl、html、js文件。在数据库中创建新表后,代码生成文件即可根据此表生成上述文件,实现了基本的表格展示、增删改查功能,可直接复制进项目中直接使用,添加菜单数据到数据库,即可在项目中看到此菜单页面。

public static void main(String[] args) throws IOException {// 参数为表名 LinGenerater lg = new LinGenerater("thing");// 此方法可以生成代码 lg.execute();// 此方法可以插入菜单数据 lg.insertMenu("thing", "测试生成", "globe"); }

日志记录

日志记录通过aop(LogAop类)方式对所有包含@BizLog注解的方法进行aop切入,通过@Bizlog注解中的value属性来获取用户所做的操作,封装为日志类,异步存入数据库中(通过ScheduledThreadPoolExecutor类)。

@Pointcut("@annotation(com.du.lin.annotation.BizLog)") public void logCut() { }

使用Thymeleaf使得html代码更简洁

下面是便签功能实现的部分片段。 后端:

List<Memo> list = service.getUserMemoList(); request.setAttribute("memolist", list);

前端html:

<li th:each="memo,memoStat:${memolist}"> <div> <small th:text="${memo.time}"></small> <small th:text="${memo.time}"></small> <h4 th:text="${memo.title}"></h4> <p th:text="${memo.text}"></p> <a th:id="${memo.id}" onclick="deletememodialog(this)"> <i class="fa fa-trash-o "></i></a> </div> </li>

所用框架

前端

  1. Bootstrap
  2. jQuery
  3. jqGrid
  4. jstree
  5. SweetAlert

后端

  1. SpringBoot
  2. MyBatis Plus
  3. Spring
  4. Thymeleaf
  5. Ehcache
  6. Kaptcha
  7. Shiro
  8. Velocity

项目演示视频如下:

获取源码请关注并私信“BG”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年8月10日 上午11:06
下一篇 2022年8月10日 上午11:08

相关推荐