Java基于SpringBoot的牛客网社区项目实现详解(上)

本文详细介绍了基于SpringBoot的牛客网社区项目的开发过程,涵盖环境搭建、首页开发、邮件发送、注册功能、会话管理、验证码生成、登录与退出功能、敏感词过滤及发布帖子等多个模块。通过三层架构(DAO、Service、Controller)实现,涉及技术包括Spring Boot、Spring、MyBatis、Redis等,并利用拦截器管理会话信息。
摘要由CSDN通过智能技术生成

Java基于SpringBoot的牛客网社区项目实现详解(上)

上传篇幅有限,因此分为上下两部分,完整从零介绍牛客网项目的创建。不涉及到代码层面,仅介绍搭建逻辑过程。


项目简介:初识Spring Boot,开发牛客网社区首页。

项目包功能介绍

community

  1. .idea

  2. .mvn

  3. src

    (1) main

    ​ java (文件夹)

    ​ com.nowcoder.community (package) //用于存放项目的一些bean包

    ​ annotation(package) //存放自定义注解

    ​ aspect(package) //存放AOP面向切面测试组件

    ​ config (package) //存放配置类,装配第三方bean时不能进入到其里

    ​ 面类上加注解,此时通过配置类bean注解进行声明

    ​ controller (package) //存放视图层模块,具体的处理请求

    ​ entity (package) //存放实体类,用于封装表里的数据

    ​ dao (package) //数据访问层,用于存放访问数据库的bean(接口)

    ​ event(package) //存放消息事件的生产者和消费者

    ​ quartz(package) //存放quartz定时任务

    ​ service (package) //业务组件,处理一些具体的业务

    ​ util(package) //存放静态的配置类

    ​ CommunityApplication (class)

    ​ resources (文件夹) //用于存放配置文件以及静态资源

    ​ mapper (package) //数据访问组件mapper接口

    ​ static (package) // 存放网页依赖的静态图片、样式、JS等等

    ​ templates (package) // 存放网页模板(动态)

    ​ application.properties // 配置文件

    ​ logback-spring.xml //日志配置文件

    (2) test

    ​ java

    ​ com.nowcoder.community (package)

    ​ CommunityApplicationTests (class)

External Libraries // 外在依赖包

一、搭建开发环境

1. 技术架构

• Spring Boot
• Spring、Spring MVC、MyBatis
• Redis、Kafka、Elasticsearch
• Spring Security、Spring Actuator

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 开发环境

• 构建工具:Apache Maven
• 集成开发工具:IntelliJ IDEA
• 数据库:MySQL、Redis
• 应用服务器:Apache Tomcat
• 版本控制工具:Git

3. 搭建过程

(1)安装Apache Maven

​ http://maven.apache.org(安装) https://mvnrepository.com/(Maven仓库)

(2)安装IntelliJ IDEA http://www.jetbrains.com/idea(安装)

(3)安装MySql Server https://dev.mysql.com/downloads/mysql

​ 安装MySQL Workbench https://dev.mysql.com/downloads/workbench

(4)使用Spring Initializr 创建“牛客社区”项目 https://start.spring.io

在这里插入图片描述

(5)解压缩下载的文件到文件夹即可得到初始化的包了。

二、开发社区网首页

在这里插入图片描述

1. 首先开发步骤(开发的三层架构)

(1) 首先开发 DAO 数据访问层,用于存放访问数据库的bean,再开发数据访问组件 mapper 。在开发 DAO 的过程中,首先在 dao 包下的 entity 中新建一个类(DiscussPost)用于存放表中的字段;有了实体类之后,就可以开发 mapper ,通常是一张表一个mapper,首先 在dao 包下创建一个接口(DiscussPostMapper, 注:在接口前面加上@Mapper,这样该接口就能被容器扫描这个接口,才能自动地去实现它和装配它),接口中封装的是针对表的增删改查等等功能的java语句(注:@Param注解用于给参数取别名。如果只有一个参数,并且在里使用,则必须加别名);接下来给 mapper 创建一个配置文件,在 resourcesmapper 目录下创建 .xml 文件(discusspost-mapper.xml),里面存放着表中的字段,以及执行相关表操作的对应SQL语句。这样整个 DAO 数据访问层就构建好了!

(2) 接下来就可以开发 Service 业务层了,开发的时候它会调用 DAO 数据访问层。首先在项目的 service 包下创建一个业务组件(DiscussPostService, 注:这里同样在类前加一个@Service注解,好让容器访问到,与上面的@Mapper同理),这里面service里面写的是调用mapper方法。

(3) 视图层中的东西我们也可以基于 Service 业务层给它实现了,首先将一些静态资源(css:样式文件,img:静态图片,js)置于 resourcesstatic 目录下;把 site:其他页面、index.hxml :主页、以及我们牛客社区的收发邮件的模板置于 templates 目录下;开发视图层,首先我们需要先开发 controller ,在controller 包下新建一个controller(HomeController, 注:前面同样加上@Controller注解),controller 在处理请求时需要调用 Service ,因此需要把一些Service加进去,接下来再将处理请求的方法加入到 controller 文件中(如:getIndexPage等);接着根据 controller 中指定的网页页面(index.html),修改其中的内容功能(这里使用的是 thymeleaf 模板引擎)。

三、发送邮件

在这里插入图片描述

1. 配置邮箱

在 application.properties 配置文件中加入邮件配置。

# MailProperties
spring.mail.host=smtp.sina.com
spring.mail.port=465
spring.mail.username=hzqiang0926@sina.com
spring.mail.password=b657a198bd1500f0
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true

2. 使用spring mail实现功能

创建一个包 util 专门存放工具类 MailClient ,工具类中包含有发送邮件的方法(sendMail),在 test 中对该类进行测试(MailTests)。

四、开发注册功能

在这里插入图片描述

同样是开发的三层架构的顺序进行开发。

1. 访问注册页面

(1)为注册页面在 controller 下创建一个新的类 LoginController , 同样在类名前面加上@Controller注释,接着使用templates 的site 中的注册页面模板(register.html),这里需要对其内容进行修改:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值