主要技术介绍
**一:Springboot:
**
Spring Boot和MVC相比,实现了自动配置,降低了项目搭建的复杂度。
众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如,Redis, SpringSecurity等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。说到底,Spring Boot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。对我们使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,变得更加简单起来,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。
二:Maven:
Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件(plugin)目标(goal)的逻辑。可以暂时简单地理解成Maven是帮助我们更方便地管理jar包和各种依赖。Maven主要做了两件事:①统一开发规范与工具②统一管理jar包。也可以参考:http://www.cnblogs.com/hongwz/p/5456578.html和http://blog.csdn.net/zhuxinhua/article/details/5788546进行详细了解。
三:BootStrap:
BootStrap是一个简洁、直观、强悍的前端开发框架,它能让web开发更迅速、简单。BootStrap使用栅格系统实现网站的响应式设计,他可以让用户通过各种尺寸的设备浏览网站并获得良好的视觉效果。例如,先在计算机显示器上浏览一个网站,然后在智能手机上浏览,智能手机的屏幕尺寸远小于计算机显示器,但是你却没有感觉到任何差别,两者的用户体验几乎一样。同时BootStrap还有全局的 CSS设置、定义基本的 HTML 元素样式、可扩展的 class,它还包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等,让你更快地做出漂亮的网页。
四:Redis:
Redis是基于内存,也可以基于磁盘持久化的非关系型数据库(NoSQL),它的数据存储结构是key-value,在这个项目中,我们把Session保存在redis中,比如我们可以设置缓存时间,和shiro结合,一定时间内不操作便自动下线等。
五:Shiro:
Apache Shiro是Java的一个安全框架。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等(此项目暂时采取了Redis-shiro的方式)。在应用中,安全管理有时会非常复杂,但Apache Shiro会让它变得非常简单。下面是Apache Shiro可以做的事:鉴别用户身份;管理用户权限,例如:判断用户是否有某一角色或用户是否被允许做某一操作;在鉴别用户身份时、权限管理时或session生命周期内进行一些操作;可以聚合一个或多个用户权限数据源并且以用户视图的形式统一表现出来;实现了单点登录功能(SSO);无需登录便可实现“记住我”这一功能等等。而且Shiro的API并不难。
六:Git:
Git是一个版本控制工具,类似于SVN,但在本项目中Git的另一个作用是在Heroku的git服务器上,git push命令会自动触发安装、配置和部署程序。
•Git与SVN基本的比较:
1.GIT是分布式的,SVN不是
GIT跟SVN一样有自己的集中式版本库或服务器。但是GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。更方便地查看历史版本记录,创建项目分支等
2.GIT把内容按元数据方式存储,而SVN是按文件
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等
3.GIT分支和SVN的分支不同
分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。所以,经常会发生有些分支被遗漏的情况。
然而,处理GIT的分支却很简单。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。