一、 Web应用开发概述
什么是Web应用
1. Web应用 (Web Application)是一种运行在Web服务器上的软件程序,由用户通过Web浏览器进行访问和交互。
2.Web应用与传统的桌面应用不同,它不需要在个人计算机上安装特定的软件,只需要一个的网页浏览器。
3.通过浏览器,用户可以在不同的设备和平台上使用,只要有网络连接即可。
前端开发
1.前端使用户直接互动的应用程序部分,即用户界面。在Web开发中,前端特指在浏览器中运行的部分,涵盖页面布局、设计和交互性功能。
2.常用的Web前端技术包括:
HTML:构建网页内容的结构。
CSS:设定网页的样式和外观。
JavaScript:赋予网页交互性。
3.前端开发者的职责包括创建用户友好的界面,确保应用在不同设备和浏览器上 的兼容性,并优化整体用户体验。
后端开发
1. 后端是在服务器上运行的应用程序部分,负责处理业务逻辑和数据操作,后端从数据库检索数据,并执行计算和逻辑处理,然后将结果传送至前端。
2. 常用的Web后端技术包括:
——编程语言:如Java、Python、Node.js、 PHP等。
——数据库:如MySQL、MongoDB等,用户数据存储。
——服务器:如Apache、Nginx、Tomcat等。
——框架:如Spring Boot(Java), Django (Python)等。
3. 后端开发者负责实现业务逻辑,保证数据安全性和完整性,并构建供前端使用的API (应用程序接口)
全栈开发
1. 如果开发者即懂前端开发,也懂后端开发,可以称为全栈(Full-stack)开发。
2. 全栈开发者有能力构建整个应用程序,从用户界面到服务器和数据库。
3.全栈开发者可以参与项目的整个生命周期,从需求分析、设计、开发到部署和维护。
前后端分离
1. 前后端分离是现代Web开发的重要趋势。它在前端和后端之间划分了清晰界限。
2. 前端通过API与后端交互。前端发送API请求,后端处理这些请求并以JSON或XML格式返回数据,使得一个后端能够支持多个前端应用(如Web、移动、桌面应用)。
3. 前后端分离还允许不同的开发团队使用各自的技术栈进行开发,并实现独立部署。这种独立性使得前后端可以根据需要进行单独的扩展。
B/S架构与C/S架构
——C/S(Client/Server)构架也称作客户端/服务器架构。其中,服务器运行服务端程序,而客户端设备上安装客户端软件。服务端负责后台业务逻辑和数据处理,而客户端则处理前端界面和用户交互。
——C/S架构的主要优点是能充分利用客户端PC的处理能力,提高影响速度。然而,这也意味着需要考虑不同操作系统和硬件平台的兼容性,并且在应用更新时需要逐个更新客户端软件。
——B/S架构特别适用于Web应用程序,如社交媒体、在线购物和博客平台。这种构建允许用户通过Web浏览器访问服务器上的功能,无须在本地设备上安装任何应用程序。
B/S架构与C/S架构的区别
特点 | CS架构 | BS架构 |
部署方式 | 需要在每个客户设备上安装应用程序 | 只需使用Web浏览器访问 |
更新与维护 | 需要为每个客户端更新软件 | 更新主要在服务器端进行,用户总是访问的是最新版本 |
开发与兼容性 | 需要考虑各种操作系统和硬件平台 | 只需要考虑不同浏览器的兼容性 |
性能 | 通常提供更好的性能和响应速度 | 可能受到网络、服务器负载等的影响 |
可访问性 | 需要在特定的设备上安装 | 可以从任何地方通过Internet访问 |
界面丰富度 | 可能提供更复杂和响应式的用户界面 | 依赖于Web技术的限制,但现代框架已有所改进 |
B/S架构工作原理
在B/S架构中,前端和后端通过HTTP(超文本传输协议)通信,前端向后端发送请求以获取数据,后端从数据库检索数据,执行计算和逻辑处理,然后将结果传送至前端。
HTTP协议
1. HTTP是一种无状态的请求/响应协议,每个请求都是独立的,服务器不会“记住”之前的请求。
2. HTTP请求方法包括GET、POST、PUT、DELETE等,支持不同的操作。 HTTP响应包括状态代码,如200 OK、404 Not Found等,用于表示请求的结果。
3. 尽管HTTP本身是无状态的,但Web应用往往需要维护管理状态(例如,跟踪用户是否登录,他们的购物车内容等)。为了解决这个问题,Web开发者使用了一些技巧和工具,如cookies、URL参数、隐藏的表单字段和服务器端的session存储。
Session与Cookie
1. 用户在输入用户名密码提交给服务端,服务端验证通过后会创建一个session用于记录用户的相关信息。
2.创建session后,会把关联的session_id通过setCookie 添加到http响应头部中。客户端接收到从服务器端发来的Session ID后,会将其作为 Cookie 保存在本地。
3. 浏览器会自动发送被种下sessionid的cookie,后端接受后去存session的地方根据sessionid查找是否有此session,认证用户身份。
二、 Spring Boot 概述
Spring Boot介绍
1. Spring Boot是由Pivotal团队提供的基于Spring 的全新框架,旨在简化Spring 应用的初始搭建和开发过程。
2. Spring Boot是所有基于Spring 开发项目的起点。
3. Spring Boot就是尽可能地简化应用开发的门槛,让应用开发、测试、部署变得更加简单。
Spring Boot特点
1. 遵循“约定优于配置”的原则,只需要很少的配置或使用默认的配置。
2. 能够使用内嵌的Tomcat 、Jetty服务器,不需要部署war文件。
3. 提供定制化的启动器Starters,简化Maven配置,开箱即用。
4.纯Java配置,没有代码生成,也不需要XML配置。
5. 提供了生产级的服务监控方案,如安全监控、应用监控、健康检测等。
Spring Boot与SSM
1. SSM是由三个独立的框架组合而成的,分别是Spring 、Spring MVC和MyBatis的缩写。这三个框架经常结合使用,构建Java Web应用程序:
Spring :用于依赖注入和事务管理。
Spring MVC:用于Web层,处理HTTP请求。
MyBatis:是一个持久层框架,用于与数据库交互。
2. Spring Boot可以很好地与Spring MVC和MyBatis结合使用,但其目的是简化整个应用程序的配置和部署。
三、搭建开发环境
Spring Boot 3环境要求
1. Spring Boot 2.7是最后一个支持 JDK 8 版本,根据官方公告,Spring Boot 2.7.x会在2023年11月停止维护
2.未来能够获得官方免费维护的版本只有Spring Boot 3.0及以上版本,由于Spring Boot 3.x版本要求java 17作为最低版本,因此需要安装JDK 17 或者以上版本运行。
下载Java17
访问Oracle官方网站:
Java Downloads | Oracle
配置环境变量
新建JAVA_HOME环境,变量值为Java目录,如:D:\dev\jdk-17.0.8
配置环境变量
在"Path"变量中添加%JAVA_HOME%\bin
验证Java环境
在令提示符窗口,输入java-version并按Enter,可以看到安装的Java17版本的信息。
Apache Maven
Apache Maven是一个流行的Java项目管理和构建工具,可以对Java项目进行自动化的构建和依赖管理。
Maven的作用
1. 项目构建:提供标准的,跨平台的自动化构建项目的方式
2. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题。
3.统一开发结构:提供标准的,统一的项目开发结构,如下图所示:
下载Maven
1. 访问 Apache Maven的官方下载页面
https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
2. 下载“Binary zip archive"(如apache-maven-3.6.1-bin.zip )。
3将压缩包直接到任意目录(注意不要使用中文路径)。
Maven仓库
运行Maven 的时候,Maven所需要的任何构建都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构建至本地仓库。
配置国内Maven镜像
maven默认连接的远程仓库位置并不在国内,因此有时候下载速度非常慢,可以配置一个国内站点镜像,可用于加速下载资源。
<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>
IDEA开发工具
1. IntelliJ IDEA,通常简称为IDEA,是由JetBrains公司开发的一个流行的集成开发环境(IDE),主要用于Java 开发。
2.IntelliJ IDEA 有两个主要版本,Community Edition免费开源版本与Ultimate Edition商业版本。打开浏览器,访问IntelliJIDEA的官网: https://www.jetbrains.com/idea/
不知道怎么使用IDEA?一篇文章带你快速上手
不知道怎么使用IDEA?一篇文章带你快速上手_rider groovyscript-CSDN博客
配置IDEA的Maven环境
为了方便使用系统中配置的Maven环境,将系统中已经安装好的Maven集成到IDEA中。
四、编写Spring Boot 应用
创建Spring Boot项目
1. Spring Initializr是一个在线工具,用于快速生成一个新的Spring Boot项目:
https://start.spring.io/
2. 用户能够在其中选择所需的依赖项、项目元数据以及其他配置选项,然后生成一个压缩的项目包,可以直接下载并使用。
Spring Boot项目目录结构
1. src/main/java/:此目录包含项目的主要Java 源代码。
2.src/main/resources/:存放项目的资源文件,例如配置文件、国际化属性文件、SQL 脚本等。
src/test/: 此目录用于存放项目的测试代码和测试资源。
3. src/test/: 此目录用于存放项目的测试代码和测试资源。
4.pom.xml: Maven的配置文件,定义了项目的依赖、插件和其他设置。
5. Application.java:这是Spring Boot应用程序的入口点。它通常包含@SpringBootApplication 注释,并包含main 方法来启动应用程序。
五、Spring Boot 系统配置
配置文件
1.Spring Boot 使用配置文件来配置和定制应用程序的行为
2.默认配置文件application.properties位于src/main/resources/目录中
3.application.properties使用属性键值对的方式配置应用程序属性,键值对之间使用“=”进行分隔,例如指定服务器端口:
server.port=8081
自定义属性配置
1. 在 Spring Boot中,配置通常来自两个主要来源:
系统配置指的是Spring Boot 提供的“开箱即用”的默认配置,这些配置主要控制框架和第三方库的行为,如启动和服务器配置server.port、数据库连接 spring.datasource、日志设置logging.level。
自定义配置通常用于应用程序特定的配置,这些配置不是框架或库提供的,而是为满足特定业务或功能需求而定义的,如与外部API交互的URL、超时时间、API 密钥、应用程序的版本号、默认语言等。
2. Spring Boot 中框架提供了@Value 和 @ConfigurationProperties 两个关键注解从配置文件中读取并注入属性值。
自定义属性配置
1. @Value 允许你直接将配置文件中的单个属性值注入到Spring bean 中的字段、方法参数或构造函数参数。
例如,@Value("${app.name}") 可以从配置文件中读取app.name 的值并将其注入到对应的Java 字段。
2. @ConfigurationProperties注解允许你将配置文件中的多个相关属性绑定到一个 Java bean,使得配置更加结构化。
例如,使用@ConfigurationProperties(prefix = "app") 可以将所有带有 app 前缀的属性绑定到一个 bean。