一.项目功能描述:
主要分为4大功能模块,用户登录功能,文章评论功能,发布和修改文章功能,文章分类。登录首页之后可以查看所有文章的信息,但是此时只能查看,不能修改。如果想要对文章进行操作,就需要用户登录(利用数据库保存的用户名和密码)。用户登陆之后可以对文章进行评论,发布新的文章,修改和删除已经发布的文章,创建和删除新的文章类型。
二.项目流程
首先在输入url,根据不同的url调用后台 Controller 中的方法,Controller 中的方法再调用 Servise 逻辑层中的方法,Service 中的方法调用 mapper 中接口的方法,利用AOP技术会自动生成这些接口的代理类,这些代理类与数据库的 xml 文件关联,直接操作数据库,并将数据最终返回给 Controller 业务处理层。Controller 中的方法在处理完当前 url 任务后,把返回的信息传递给 FreeMarker 模板中,并渲染出指定的 html 页面。
三.技术栈
Spring: 是一套 Java 开源框架家族,以 Ioc 和 AOP 最为核心。
SpringWebMVC: Spring 家族中基于 Servlet 构建的一套 Web 开发框架。
SpringBoot: Spring 家族中简化 Spring 开发配置的开发框架。
IoC: IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。简单来讲,就是对象界的淘宝,把对象的生 产和使用分离。买家只需要关心使用对象,不关心对象具体怎么来的。
DI: Dependency Injection 依赖注入,可以简单认为就是 IoC,指的是使用对象的时候会有快递小哥把对象送上。 至于对象哪来的,快递小哥哪来的,我们都不需要关心。
AOP: Aspect Oriented Programming的缩写,面向切面编程的意思。把程序的运行过程想象成一段一段的环节组 成,可以通过不修改代码的方式,方便的在这些段落前后加入新的功能。
MVC: Model/View/Controller 模型/视图/控制器 是一种常见的设计层级关系。 Service: 一种设计层级,一般用来组织业务模型。
DAO: Database Access Object,一种设计层级,一般指访问数据库的这层模型。 Freemarker: 一种 View 的技术,除此之外,可以直接使用 JSP 或者 Thymeleaf。 Mybatis: 一种 DAO 的技术。
POJO: POJO(Plain Ordinary Java Object)简单的Java对象,不需要实现、继承任何的接口或者类的对象。
四.项目实现
1.创建数据库表
(1)在数据库中创建四张表,分别是文章表,用户表,文章分类表,文章评论表。
(2)在 IDEA 中生成这四张表对应的实体类。
2.业务处理层(Controller)
(1)用户登录到首页之后看到所有文章的信息,创建一个文章首页的方法。并且返回到index页面,通过index页面显示文章详情。

(2)当用户需要对文章进行操作时,需要进行用户登录操作,一次需要创建一个方法处理用户登录。在用户登录时获取用户名和密码与数据库中的信息比对,如果不一致则还是返回登录页面,如果登录成功,则用 session 保存用户的信息。

(3)用户在登陆之前需要对非法的路径进行拦截,因此需要创建一个拦截器。

(4)用户登录之后可以对文章进行评论,或者删除文章的某些评论。其中添加完评论和删除评论后重定向到文章评论界面。

(5)用户登陆之后可以发布,修改和删除文章。首先在根据用户的id找到用户的文章,然后用户在自己的文章中进行操作。首先用户进入到 /writer界面并显示所有用户的文章,其次再进行文章的操作。

(6)新建和删除文章类型的操作也是在用户登陆之后才可以完成。操作时需要获取当前用户的信息,这些信息在用户登录时已经保存到 session 中。当新建和删除文章分类后都重定向到 /write 页面。

3.业务逻辑层(Servise)
业务逻辑层是联系 Controller 层和 mapper 接口的中间层。它主要起到连接作用,当 Controller 类需要数据库的数据时,Controller 类的方法调用 Service 类中的方法,而 Service 类中方法直接调用 mapper 接口中的方法。针对文章,用户,分类和评论 Service 层也分为了四个类。下面以 ArticleService 类为例:

4. Mybaties操作数据库
使用 Mybaties 的时候,需要使用 xml 文件来执行 SQL 语句,因此针对数据库中的四个表,生成了对应的四个 xml 文件来执行具体的 SQL 语句。下面以 UserMapper.xml 为例:

5.前端的页面(FreeMarker)
前端界面主要由5个部分,分别为:
(1)index文件,该文件的作用是显示项目首页的内容,也就是用户还未登录时的文章信息。
(2)login文件,该文件的作用是进行用户的登录操作。
(3)info文件,该文件的作用是显示文章的评论,主要针对评论的添加和删除。
(4)editor文件,该文件显示针对文章操作的首页界面,当针对文章进行具体操作时,就跳转到 write 文件。
(5)write文件,该文件的作用是显示针对文章的操作。针对文章的添加,修改或者删除操作跳转到不同的url。
(6)error文件,当出现错误时,直接在后台的控制器中查看错误比较麻烦,借助 error 文件可以把后台的错误信息显示到页面中。
五.界面展示
1.项目首页

2.登录界面

3.用户登录后的界面

4.文章评论界面

本文介绍如何使用Spring框架家族,包括SpringWebMVC、SpringBoot等技术,搭建一个具备用户登录、文章评论、发布和修改文章及文章分类等功能的个人博客系统。

3474





