基于SpringBoot的任务管理平台v1.0正式发布
基于 SpringBoot 任务管理系统V1.0版正式发布
(原创内容,转载请注明来源,谢谢)
一、基本内容
经过近半个月以来学习springboot,完成了我的java的第一个项目——基于SpringBoot的任务管理平台v1.0。这个任务管理平台,涵盖了数据库的增删改查、前后端的ajax、前端页面返回渲染、登陆等基本功能。技术上,前端采用jquery(部分用到jqgrid),网站模板采用ace模板,java前端模板采用的是Thymeleaf,java服务端模板即springboot,orm采用mybatis,数据库是mysql。
对于想要学习SpringBoot框架的同学们,可以从github上面下载这个项目,并且通过往里面改内容的方式,亲身体验这个框架。因为项目已经调通,所有配置都加载好了,所以用这个项目来学习框架,可以避免前期各种配置不正确导致的问题。
二、项目路径与获取方式
1、项目代码获取方式
1)windows的cmd、linux、mac
git clone https://github.com/linhxx/taskmanagement.git
2)IDEA(新手推荐)
上网搜索“IDEA获取github代码”,网上教程很多,例如这篇文章:http://blog.csdn.net/sinat_36246371/article/details/52914448。
配置好git、github后,见下图,在github地址输入https://github.com/linhxx/taskmanagement.git,另外两个内容自行随意输入。
获取完代码以后,由于maven需要下载相关文件依赖,因此idea会加载一会儿。等进度条都加载完即可。
2、数据库
项目使用mysql,因此需要在操作系统中安装mysql数据库,这个自行百度。安装完后,在操作系统连接mysql,并且新建一个数据库,名字叫做spring。
接着,找到刚刚下载的项目源码,在根目录找到spring.sql文件,在mysql终端中进入到刚刚建好的spring数据库,并且打开spring.sql文件,把里面的内容复制到mysql终端,执行里面的内容。
文件路径见下图:
3、找到application.java文件,在idea中运行该文件。待文件编译完成后,在浏览器中,输入http://127.0.0.1:9091/toLogin,看到下面的页面,即正常加载:
4、登陆:账号密码都是root。如果登陆失败,首先查看mysql服务是否打开,通常是这个问题。要不然就是数据库表没建对。有问题可以在公众号中联系我~
三、基本功能介绍
1、登陆
登陆页面见上图,目前就实现登陆功能,注册和忘记密码还没实现,后续版本可能会实现。
2、主页
主页是欢迎页面,左侧有导航栏,目前包括任务管理和用户管理。右上角有个人登陆信息,点击个人登陆信息,里面有个人信息设置,可以修改个人密码、账号。
这个项目前端的模板是ACE模板,这些前端页面的代码基本是ace,其中对于部分信息,如用户个人设置等部分,有整合java前端模板thymeleaf,实现部分数据的动态设置。
3、用户管理
用户管理包括用户的增删改查,并且可以对用户进行重置密码。重置后密码和用户名一样。如果重置的是自己的密码,则需要重新登陆,会退回到登录页面。
其中,这里的分页插件以及项目增删改查的时候表格的刷新,都是通过jquery的插件jqgrid实现的,因此对信息的改动会实时反应到表格中。
4、任务管理
技术实现上,类似用户管理,不详细介绍。
四、项目目录介绍
1、项目路径
2、config
添加一些路由规则、拦截器规则。
3、controller
主要是负责处理url并返回页面、处理ajax并返回数据。通常controller需要依赖注入service,通过调用service来间接操作数据库。
4、domain
数据库表结构,里面的每个类都是数据库的一个表,而且里面类的每个属性就是表的每个列,同时定义getter和setter。
5、dao、mapper
dao是java文件,是接口,用于给service调用,并且指定需要调用哪个xml。
mapper是xml文件,里面有具体的sql语句。
这个是mybatis通过xml进行操作数据库的方式。mybatis也可以通过注解的方式进行操作数据库,还有也可以通过jpa(底层的orm是hibernate)的方式操作数据库,后续的项目可能会实现。
6、intercepter
过滤器,目前主要用到的是登陆控制,通过判断session的方式进行登陆控制。
7、application
项目的启动文件,main函数在这里,并且datasource也在这里定义,springboot会自动使用定义的datasource。项目使用的是阿里的druid。
8、static
js和css、图片等放在这里。
9、templates
页面的文件在这里,thymeleaf也在这里面使用。
10、application.properties
全局变量的定义地方,例如数据库连接、页面端口号等。
11、pom
项目是通过maven进行管理,所有需要加载的内容都在这里面。
五、鸣谢
1、springboot学习
基本知识的学习,建议可以到慕课网去看,下面两个链接是springboot的介绍,基本上介绍的还是挺详细的。
http://www.imooc.com/learn/767 ,http://www.imooc.com/learn/810。
2、本项目开发
这个项目的开发,我是在学习http://tengj.top/tags/Spring-Boot/,这个博客后的启发,进行的开发。非常感谢这个博主。
六、后续计划
近期由于我个人还有一些比较重要的事情需要忙,这两个多月可能发公众号不会那么频繁,但是我仍然保证,每周至少2次或以上、总文章3篇或以上的频率,来发文章。
接下来我打算看spring的一些核心的思想,以及javaweb的核心思想。毕竟接触java不久,还会继续学习。
另外,php部分,我打算年底前找时间把laravel学了,一直知道这个优秀的框架却还没时间学,另外还有js的vue框架。
其他方面,算法、数据库等,仍会持续不间断发推送。
这个springboot项目,应该还会持续更新(毕竟是我发github的第一个项目),另外laravel项目如果做完也会尽快发github的。
七、结语
最后,最近公众号关注量大了很多,文章的点击量比以前多了好多,而且前些天还收到了赞赏,这些都让我非常感动。我通常每天晚上都会看公众号,有任何想说的欢迎直接发在公众号的对话框,或者任何一篇文章。我看到后会第一时间答复。
我会持续学习,尽力分享所学的内容,也非常希望各位对于我文章的任何不正确之处,及时指出,甚至在公众号中喷我(最好是能指出问题)也没问题。我相信技术的进步在于分享与讨论。诸位一起加油!
- 让 http 2来得更猛烈些吧
- SQL Server 2008基于策略的管理
- centos系统安装Python
- rpc框架之 thrift连接池实现
- .NET Core全新路线图
- jboss eap 6.2+ 版本中 加密datasource密码等敏感信息
- WordPress自定义栏目运用实例II:添加文章Meta标签(keywords /description)
- 《Deep Learning with Python》第一章 1.1 人工智能、机器学习和深度学习
- boost::function的用法
- rpc框架之 thrift 学习 1 - 安装 及 hello world
- WordPress自定义栏目运用实例Ⅰ:添加文章来源
- ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
- 算法:支持重复元素的二分查找
- .NET 异常处理的动作策略(Action Policy)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Java9-Reactive Stream API响应式编程
- mybatis-plus增删改查以及前后端分离模式下的项目应用
- docker(常用软件安装)
- PyTorch版:集成注意力和MobileNet的YOLOv4
- 从源代码级别看懂MinIO对象存储网关的实现
- 4种主流超参数调优技术
- 一分钟学Python| 面向对象(上)
- Python 为什么不支持 switch 语句?
- 你还在认为 count(1) 比 count(*) 效率高?
- 一分钟学Python| 面向对象(中)
- uni-app自定义打包目录package.json命令配置
- 在Zeppelin中如何使用Hive
- B站真题:如何判断括号是否有效?
- (在模仿中精进数据可视化03)OD数据的特殊可视化方式
- Ubuntu20.04 体验和美化