学习仿牛客网社区项目
| 各章节总结 |
|---|
| 第一章 |
| 第二章 |
| 第三章 |
| 第四章 |
| 第五章 |
| 第六章 |
| 第七章 |
| 第八章 |
文章目录
Maven
什么是Maven?
一个大型的 Web 项目,需要依赖很多第三方类库,不同 Jar 包之间还有复杂的依赖关系;这时,Maven 出现了,我们只需要告诉它需要的 Jar 包,它会帮我们自动下载并管理它们。
Maven就是这样一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。
Maven的核心思想?
约定大于配置。Maven会约定一些规则,不能违反,比如项目的目录结构。
Spring
什么是Spring?
Spring是一个轻量级的容器(框架),如果加上定语:
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
Spring全家桶的组成?

- Spring Framework:Spring的核心;
- Spring Boot:构建项目,可以用它快速开发单个微服务;
- Spring Cloud:协调微服务,可以将一个大项目拆分成多个小项目分而治之;
- Spring Cloud Data Flow:连接数据源,集成多个平台数据。
再深入到Spring Framework

Spring由二十多个小模块组成,下面只列举这个项目中用到的技术栈,更详细的介绍请转场。
- Core Container(核心容器)
- 控制反转(IoC)
- Data Access(数据访问)
- Spring MyBatis
- Web(Web开发)
- Spring MVC
- Data Integration(数据集成)
- Email:发邮件
- Scheduling:定时任务
- AMQP:消息队列
- Security:安全控制
什么是IoC?
控制反转(IoC)是一种管理对象 Bean 的设计思想,它将手动创建 Bean 对象的权力交给 Spring 框架。这样我们在创建对象时就只需要添加相应的注解或配置文件,而不用考虑如何创建它。
它的优点:降低耦合,我们在将Bean对象交给容器管理时,需要对象的定义和配置文件,各对象之间的关系在配置文件中声明,不会直接产生耦合。
IoC补充知识
依赖注入(DI):是IoC的实现方式;
IoC容器(IoC Container):是依赖注入的关键。本质上是一个工厂,数据结构是Map。
对象Bean如何使用?
Bean常见的四种注解:
@Controller
@Repository
@Service
@Component
如何使用Bean:
使用依赖注入:@AutoWired
Spring MVC
为什么要引入Spring MVC?
在早期 Web 开发中,控制层、业务层和数据访问层均交给 JSP 或 Java Bean 处理,这样做的弊端:
JSP和Java Bean严重耦合;Java和Html耦合;- 技术人员除了需要 Java 知识,还需要前端技术栈才可以工作;
- 前端依赖后端,后端依赖前端,工作效率很低;
- 代码复用性差;
什么是Spring MVC?
M 代表模型(Model):模型就是数据,如:dao , bean
V 代表视图(View):视图用于展示数据,如:网页,JSP
C 代表控制器(Controller):控制器用于接收用户请求,将不同的数据展现在不同的视图上。
Spring MVC的架构?

参考文章中红字部分为控制层。但课程中的讲解应该是表现层!
而 MVC 三者都属于该表现层。
补充一个小知识点:模板引擎Thymeleaf:用于生成动态Html。
项目开发顺序!
了解了MVC的基本原理,大概的开发顺序就跃然纸上。
开发顺序与调用顺序相反,这个很好理解,因为后面的依赖前面的。
Dao -> Service -> Controller

- entity:开发属性名;
- Dao:写接口,定义方法头;
- Mapper:写配置文件.xml,实现接口,Bean对象生成;
- MapperTests:添加AutoWired注解注入Mapper,测试Bean;
- service:添加Service注解,还要添加AutoWired注解注入Mapper,开发业务代码,根据不同逻辑返回值,将返回值交给controller;
- controller:添加Controller注解,同样要注入Mapper,根据service传过来的不同返回值处理请求,将查询到的数据通过model传给模板;
- .html:模板就是html文件,将数据渲染为视图View展示给用户。
Spring Boot
什么是Spring Boot?
一个Java Web的开发框架,和Spring MVC类似。但其实Spring Boot也不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。
演化过程:J2EE -> Spring -> Spring Boot
Spring Boot的核心思想?
约定大于配置。默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。
Spring Boot的优势?
- 为所有Spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
调试技巧
响应状态码有哪些?
- 2开头:成功响应;
- 3开头:重定向,向浏览器返回需要再次访问的地址,浏览器再次访问。重定向的作用:使用一种低耦合的方式实现功能的跳转;
- 4开头:客户端响应失败;
- 5开头:服务器已经接收请求,但响应失败
通俗理解日志?
相当于你买一台车,打日志就是上车险,没人愿意打日志,但如果项目出错,它就很有用。
如何调试?
先打印日志,分析;
如果还是不行,根据响应状态码定位是客户端还是服务端的问题,确定之后打断点Debug。
Git
commit、push、pull是什么意思?
- commit:提交到本地数据库;
- push:同步到远程数据库;
- pull:将服务器的代码拉取到本地;
- update:pull时如果发现代码冲突,会弹出一个解决冲突的窗口,在这里解决;
Git 回退的三种类型?
-
mixed:为默认值,等同于
git reset。将文件回退到工作区,此时会保留工作区中的文件,但会丢弃暂存区中的文件; -
soft:将文件回退到暂存区,此时会保留工作区和暂存区中的文件;
-
hard:将文件回退到修改前,此时会丢弃工作区和暂存区中的文件;
本文详细介绍Maven、Spring、SpringMVC、SpringBoot等JavaWeb核心框架的概念与应用场景,包括Maven依赖管理、Spring轻量级容器特性、SpringMVC分层架构及SpringBoot简化配置的优势。

689

被折叠的 条评论
为什么被折叠?



