(原创内容,转载请注明来源,谢谢)
一、基本内容
经过近半个月以来学习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的。
七、结语
最后,最近公众号关注量大了很多,文章的点击量比以前多了好多,而且前些天还收到了赞赏,这些都让我非常感动。我通常每天晚上都会看公众号,有任何想说的欢迎直接发在公众号的对话框,或者任何一篇文章。我看到后会第一时间答复。
我会持续学习,尽力分享所学的内容,也非常希望各位对于我文章的任何不正确之处,及时指出,甚至在公众号中喷我(最好是能指出问题)也没问题。我相信技术的进步在于分享与讨论。诸位一起加油!