JavaWeb学习笔记(三)(项目)

本文详细介绍了SpringBoot入门步骤,包括创建工程、处理HTTP请求、Tomcat服务器、参数处理、分层架构、依赖注入等内容,并以Tlias员工管理系统为例,涵盖了文件上传、配置管理等实战技巧。
摘要由CSDN通过智能技术生成

1.SpringBoot入门

1.1 步骤

. 创建springboot工程,填写模块信息,并勾选web开发相关依赖。

        

 

. 创建请求处理类HelloController,添加请求处理方法 hello,并添加注解。

. 运行启动类,打开浏览器测试。

2.HTTP协议

2.1 概述

  • 概念: H yper T ext T ransfer P rotocol ,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

2.2 请求格式

Host

请求的主机名

User-Agent

浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko

Accept

表示浏览器能接收的资源类型,如text/*image/*或者*/*表示所有;

Accept-Language

表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;

Accept-Encoding

表示浏览器可以支持的压缩类型,例如gzip, deflate等。

Content-Type

请求主体的数据类型。

Content-Length

请求主体的大小(单位:字节)。

2.3 响应格式

3 Web服务器Tomcat

  • Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是 "提供网上信息浏览服务"

  • springboot内嵌了Tomcat服务器。

4. 请求

4.1 简单参数

  • SpringBoot方式
    • 请求参数名与方法形参变量名相同
    • 会自动进行类型转换

  • @RequestParam注解
    • 方法形参名称与请求参数名称不匹配,通过该注解完成映射
    • 该注解的required属性默认是true,代表请求参数必须传递

4.2 实体参数

  • 简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可

  • 复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。

4.3 数组集合参数

  • 数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

        

  • 集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系

4.4 日期类型的参数

  • 日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换

  • 注意:本方法存在差错,本人还没有操作成功的先例

4.5 JSON类型参数

  • JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识

4.6 路径参数

  • 路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数

5 响应

  • @ResponseBody

  • 统一响应结果

6 分层解耦

6.1 三层架构

  • controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
  • service:业务逻辑层,处理具体的业务逻辑。
  • dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。

  • 优点:复用性强,便于维护,利于拓展。

6.2 分层解耦

6.3 IOC&DI入门

  • Service层 及 Dao层的实现类,交给IOC容器管理。

  • ControllerService注入运行时,依赖的对象。

6.4 IOC详解

  • Bean的声明

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注解

说明

位置

@Component

声明bean的基础注解

不属于以下三类时,用此注解

@Controller

@Component的衍生注解

标注在控制器类上

@Service

@Component的衍生注解

标注在业务类上

@Repository

@Component的衍生注解

标注在数据访问类上(由于与mybatis整合,用的少)

 

  • Bean组件扫描
  • 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描。
  • @ComponentScan注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解 @SpringBootApplication 中,默认扫描的范围是启动类所在包及其子包。
  • 建议不要随便移动包的顺序

6.5 DI详解

  • @Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报出如下错误:

  • 通过以下几种方案来解决:
    • @Primary
    • @Qualifier
    • @Resource
  • @Resource@Autowired区别

7 项目(Tlias员工管理系统)

7.1 准备工作

7.1.1 需求 & 环境搭建
7.1.1.1 需求说明

7.1.1.2 环境搭建

7.1.2 开发规范
  • 案例基于当前最为主流的前后端分离模式进行开发。

  • lRESTREpresentational State Transfer),表述性状态转换它是一种软件架构风格

        

  • 前后端交互统一响应结果 Result

  • 开发流程

 7.2 部门管理

7.2.1 查询部门
  • 需求

  • 思路

7.2.2 前后端联调
7.2.3 删除部门
  •  思路

7.2.4  新增部门
  • 思路

7.2.5 小结
 

7.3  员工管理

7.3.1 分页查询
  • 分析

  •  思路

  • 实现 

 

 

 

  •  PageHelper

 7.3.2 条件分页查询
  • 思路

  • 实现

7.3.3 删除员工
  • 思路

  • 实现

7.3.4 新增员工
  • 思路

  • 实现

7.3.5 文件上传
7.3.5.1 简介
  • 文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。
  • 文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。
  • 页面前端三要素

  • 服务器端接受

7.3.5.2 本地上传

在服务端,接收到上传上来的文件之后,将文件存储在本地服务器磁盘中。

SpringBoot中,文件上传,默认单个文件允许最大大小为 1M。如果需要上传大文件,可以进行如下配置:

7.3.5.3 阿里云OSS
  • 阿里云对象存储OSSObject Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。

  • 阿里云OSS-集成

  • 小结

7.3.6 修改员工
7.3.6.1 查询回显
  • 思路

  • 实现

7.3.6.2 修改员工
  • 思路

  • 实现

7.4  配置文件

7.4.1 参数配置化
  • 问题 分析

  • 问题解决

7.4.2 yml配置文件

  • yml

  • yml数据格式
    • 对象/Map集合:
    • 数组/List/Set集合:
  • yml配置

在application.properties中配置

在application.yml中配置

7.4.3 @ConfigurationProperties
  • 问题分析

  • 解决方案

  •  @ConfigurationProperties 与 @Value 

本文资料均来自黑马程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值