前端技术
-
HTML (HyperText Markup Language)
- 作用:HTML是网页内容的标准标记语言,用于定义网页的结构和内容。
- 特点:它由一系列元素(或称为标签)组成,这些元素可以是文本、图片、链接等。HTML不负责样式或交互,只负责内容的结构化展示。
-
CSS (Cascading Style Sheets)
- 作用:CSS用于设置HTML元素的样式,包括布局、颜色、字体和动画等。
- 特点:CSS通过选择器来定位HTML元素,并应用样式规则。它支持多种布局模式,如Flexbox和Grid,使得页面设计更加灵活和强大。
-
JavaScript
- 作用:JavaScript是一种脚本语言,用于为网页添加交互性。
- 特点:通过JavaScript,可以响应用户操作(如点击、滚动等),动态修改页面内容,以及与服务器进行异步数据交换(Ajax)。
-
Vue.js
- 作用:Vue是一个渐进式JavaScript框架,用于构建用户界面,特别适合用来创建单页应用(SPA)。
- 特点:Vue的核心库只关注视图层,易于学习和集成。它使用响应式数据绑定和组件系统,使得数据和视图的管理更加高效。
-
Element UI
- 作用:Element UI是基于Vue 2.0的桌面端组件库。
- 特点:提供了一系列预制的UI组件,如按钮、输入框、对话框等,这些组件具有美观、易用的特点,可以加速前端开发。
-
Nginx
- 作用:Nginx是一个高性能的HTTP和反向代理服务器,常用于Web服务器和负载均衡。
- 特点:以其高稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。Nginx也常用于静态资源的托管和反向代理设置。
后端技术
-
Maven
- 作用:Maven是一个项目管理和构建自动化工具,主要用于Java项目。
- 特点:通过
pom.xml
文件来管理项目的构建、报告和文档。Maven支持依赖管理,确保项目中使用的所有库都是最新且兼容的版本。
-
MySQL
- 作用:MySQL是一个关系型数据库管理系统,用于存储、检索和管理数据库信息。
- 特点:它是一个开源的数据库,支持广泛的应用程序,提供高性能、可靠性和易用性。
-
Spring Boot
- 作用:Spring Boot是一个基于Spring框架的项目,用于简化新Spring应用的初始搭建以及开发过程。
- 特点:通过“约定大于配置”的原则,Spring Boot可以自动配置Spring和第三方库,使得开发者可以快速启动和运行Spring应用。
-
MyBatis
- 作用:MyBatis是一个半自动的ORM(对象关系映射)框架,用于将Java对象映射到数据库表和行。
- 特点:MyBatis提供了映射SQL语句的灵活性,允许开发者编写自定义的SQL查询,同时减少了模板代码的编写。
使用Spring Boot开发应用程序步骤:
-
初始化项目:
- 使用Spring Initializr(https://start.spring.io/)或类似工具快速生成项目结构。
- 选择所需的依赖项(如Spring Web, JPA, MyBatis, Thymeleaf等)。
-
项目结构:
- 确认项目结构,通常包括
src/main/java
、src/main/resources
、src/test/java
等目录。
- 确认项目结构,通常包括
-
配置文件:
- 在
src/main/resources
目录下创建或修改配置文件application.properties
或application.yml
。
- 在
-
定义实体:
- 创建与数据库表对应的实体类,使用JPA注解(如
@Entity
、@Table
等)。
- 创建与数据库表对应的实体类,使用JPA注解(如
-
创建数据访问层:
- 定义Mapper接口,定义了与数据库表相关的操作,如增删改查(CRUD)操作。
-
编写业务逻辑:
- 创建Service类,包含业务逻辑和事务管理。
-
构建控制器:
- 创建Controller类,处理HTTP请求和响应。
-
编写DTO:
- 如果需要,创建数据传输对象(DTO)类,用于封装从客户端接收的数据或向客户端发送的数据。
-
异常处理:
- 定义全局异常处理器,使用
@ControllerAdvice
注解。
- 定义全局异常处理器,使用
-
配置类:
- 创建配置类,使用
@Configuration
注解,定义Bean和配置信息。
- 创建配置类,使用
-
安全性:
- 如果需要,添加Spring Security配置来保护应用。
-
编写单元测试:
- 编写单元测试和集成测试,确保代码质量。
-
数据库迁移:
- 使用Flyway或Liquibase等工具管理数据库迁移。
-
集成测试:
- 编写集成测试,测试应用的各个部分是否协同工作。
-
打包和部署:
- 使用Maven或Gradle构建项目,生成JAR或WAR文件。
- 部署到服务器或云平台。
-
监控和日志:
- 集成监控和日志工具,如Spring Boot Actuator和ELK堆栈。
常见文件和目录
-
src/main/java
:- 存放主要的Java源代码,包括控制器、服务、组件、配置类等。
-
src/main/resources
:- 存放资源文件,如配置文件(
application.properties
或application.yml
)、Spring Boot的配置文件(spring-config*.properties
)、静态资源(如HTML、CSS、JavaScript)等。
- 存放资源文件,如配置文件(
-
application.properties
或application.yml
:- 应用配置文件,包含应用的配置参数,如数据库连接、端口号、第三方服务的API密钥等。
-
pom.xml
或build.gradle
:- Maven或Gradle的构建配置文件,定义了项目的依赖、插件、构建脚本等。
-
SpringBootApplication
:- 主应用类,通常使用
@SpringBootApplication
注解标注,作为Spring Boot应用的入口。
- 主应用类,通常使用
-
控制器(Controllers):
- 处理HTTP请求的类,通常使用
@RestController
或@Controller
注解,包含处理特定路由的方法。
- 处理HTTP请求的类,通常使用
-
服务(Services):
- 包含业务逻辑的类,作为控制器和数据访问层之间的中间层。
-
数据访问对象(Repositories):
- 用于访问数据库的接口,通常继承
JpaRepository
或其他Spring Data接口。
- 用于访问数据库的接口,通常继承
-
实体(Entities):
- 与数据库表对应的Java类,使用
@Entity
注解标注。
- 与数据库表对应的Java类,使用
-
数据传输对象(DTOs):
- 用于封装数据传输的类,通常在服务层与外部API之间传递。
-
异常处理器(Exception Handlers):
- 处理和转换异常为响应的类,使用
@ControllerAdvice
注解。
- 处理和转换异常为响应的类,使用
-
配置类(Configurations):
- 包含特定配置的类,如数据库配置、消息转换器配置等,使用
@Configuration
注解。
- 包含特定配置的类,如数据库配置、消息转换器配置等,使用
程序跳转流程
-
启动应用:
- 运行主应用类,Spring Boot应用启动。
-
加载配置:
- Spring Boot加载
application.properties
或application.yml
中的配置。
- Spring Boot加载
-
初始化Spring容器:
- Spring Boot创建和初始化Spring应用上下文,扫描组件、配置和自动配置。
-
监听端口:
- 应用监听配置文件中指定的端口。
-
接收请求:
- 客户端发送HTTP请求到应用。
-
路由处理:
DispatcherServlet
接收请求并根据URL和HTTP方法将请求路由到相应的控制器。
-
业务逻辑处理:
- 控制器调用服务层处理业务逻辑,可能包括调用数据访问层。
-
数据访问:
- 服务层通过Repository或DAO访问数据库,执行CRUD操作。
-
响应构建:
- 控制器构建响应对象,将数据封装到响应体中。
-
返回客户端:
- 构建好的响应通过
DispatcherServlet
返回给客户端。
- 构建好的响应通过
-
异常处理:
- 如果处理过程中发生异常,异常处理器(如果有配置)将捕获并处理异常,返回相应的错误响应。
-
关闭应用:
- 应用停止时,执行清理工作,如关闭数据库连接。