论坛课设

论坛课设

总述

本次课设我们直接照搬 “仿牛客论坛项目”, 项目的运行配置交给我,

大家也可以自己试一试, 但是配置环境很麻烦的浪费时间, 强烈不推荐, 而且前端的CSS好像还被墙了, 第一次访问的时候得用科学上网

以下是完整的视频教程, 大家不用都看, 主要看自己实现的模块

课程介绍和项目总结这两节大家都看一看

Java求职项目:牛客网Java高级工程师,初识Spirng Boot,开发社区首页项目,免费分享给大家,可做毕设!_哔哩哔哩_bilibili

这个项目找工作用到的人非常多, 所以网上的文章教程也很多 大家酌情搜索观看

工具推荐

这里提供几个工具供大家使用

img

心态

这个项目 期间会涉及各种中间件和技术

大家千万不要被各种技术名称吓到, 这是用来吓老师的, 我们都只是浅尝辄止, 根本不需要掌握使用, 只需要面对老师的提问可以答出这项技术或者中间件是干什么的, 为什么要用即可, (其实老师99%也不懂, 参考上次课设答辩)

项目如果答辩成功的话, 大概率分会很高, 因为确实用到的技术挺多的, 还是需要大家稍微花一点时间的, 一来谁不想分高一点呢, 二来主要算是拓宽拓宽技术视野吧

技术点

本次项目用到的技术点:

前端 : HTML + CSS + JavaScript(前端这个这个老师基本不会问)

后端 : Spring + SpringMVC + SpringBoot + MySQL + Redis + Kafka + Elasticsearch + Spring Security + Spring Actuator

项目构建 : Maven

记住我们的项目前后端不分离, 会用到模板引擎, 分到的功能每个人既负责前端也负责后端, 就是MVC中我们用到的ModelAndView, 模板引擎可以理解成JSP(其实不是), 用ModelAndView 来传递信息

知识破冰

上面的技术我们可以大致分为两类:

框架: Spring + SpringMVC + SpringBoot + Spring Security + Spring Actuator

中间件: MySQL + Redis + Kafka + Elasticsearch

框架就是用Java写的半成品代码

中间件就是现成可以用的软件

接下来我进行稍微细致的简介, 让大家不至于一看到这些所谓高大上的名词而被吓到

底下的内容, 大家都看一遍, 分两类

  • 一类的必须要知道的

  • 另一类就是根据自己分配的模块 去自己看视频了解, 不懂了再在网上搜搜博客或者问问gpt

大家要做的就是概览一遍底下的内容, 记住每个技术点是干什么用的,

分配到的模块用到该技术的就得去看原视频了(其实视频也是概述, 不过也完全足够了)

框架

Spring , SpringMVC (必知):

咱就不说了, 刚刚考过, 开发主要用注解

Maven (必知) :

- 我们知道编程语言有自己的库, 通过库可以直接使用一些现有的代码, 可以减少开发者重复开发, 但除了编程语言自己的库, 还可以引入第三方的库, 这些第三方库, 我们称为依赖

, 依赖的导入和管理非常的繁琐和恶心, 可能会出现各种版本冲突问题, Java提供了Maven这样一个工具进行管理, 我们只要在Maven提供的pom.xml文件中写上依赖的坐标, 就像下面这样

img

然后点一下刷新

img

就可以在自己的项目里用这个依赖了

SpringBoot (必知) :

  • 改进了SSM, 咱们刚刚考完的SSM会发现有一堆的配置文件, 项目小点还好说, 大一点之后, 很多的配置文件, 不管是增删都是非常的繁琐和恶心的, SpringBoot的出现就是一个核心目的就是改进这一点, 简化配置, SpringBoot供了大量的默认配置 , 你只需要在一个文件中修改即可

img

而且是只改需要修改的配置即可

  • 第二点就是提供了spring-boot-starter-*这样的依赖, 这玩意其实就是把提供一种功能 依赖的各种坐标整合成一个坐标(Maven上面讲过的), 提供各个依赖提供比较合适的版本

img

Spring Security:

就是Spring提供的一个鉴定用户权限的框架, 鉴权 就是登录和判断用户有没有权限做某些事情, 这个详细的内容到时候分任务给谁, 谁具体了解即可

Spring Actuator:

企业项目上线后, 需要时刻监控这个项目的状态, 这个不做功能也可以, 这个详细的内容到时候分任务给谁, 谁具体了解即可

中间件

MySQL (必知)

关系型数据库, 大家应该都了解不多说

Redis

非关系型数据库, 啥叫非关系型数据库? 简单这么说, 存储类似表格这样的分行和列的数据我们叫关系型数据库, 只要不是像这样存储的, 我们就统一叫做非关系型数据库, 当然非关系型数据库有很多种, Redis属于是键值型数据库, 键值型就类似于一个Map, 一个键(key)对应一个(value)值, Redis它是这样存储数据的, 当然value的什么五种基本的结构还有什么高级结构先不说, 这个详细的内容到时候分任务给谁, 谁具体了解即可

为什么要用Redis呢, 还是简单说, Redis存在内存, MySQL存在硬盘, Redis比MySQL快多了, 所以我们要用Redis做缓存

这个详细的内容到时候分任务给谁, 谁具体了解即可

Kafka :

Kafka是一款消息队列, 简单这么说, 有一个队列, 有两个角色, 生产者和消费者, 生产者往队列里面生产消息, 消费者从队列里面消费消息, 我们系统的通知功能这些会用到, 为什么要用呢 主要为了 解耦、异步、削峰(不懂上网查吧, 打字打累了)

这个详细的内容到时候分任务给谁, 谁具体了解即可

Elasticsearch:

可以提供实时而且多样的搜索功能(搜索快),

这个详细的内容到时候分任务给谁, 谁具体了解即可