这节课里用到了很多的依赖,y总没有细讲他的作用,确实只要会用就行,但我还是进行了搜集和整理
1.Spring Boot Start JDBC
Spring Boot Starter JDBC 是 Spring Boot 框架提供的一个依赖,用于简化和加速使用 JDBC(Java Database Connectivity)访问关系型数据库的开发。
Spring Boot Starter JDBC 提供了以下主要功能:
-
数据源配置:它简化了数据库连接池的配置和管理。通过在应用程序的配置文件中指定数据库连接信息,如数据库URL、用户名、密码等,Spring Boot Starter JDBC 将自动配置并创建适当的数据源,供应用程序使用。
-
JDBC 模板:它提供了一个简化的 API 来执行数据库操作。通过 JDBC 模板,你可以使用常见的 CRUD 操作(如插入、更新、删除、查询)与数据库进行交互,而无需手动管理数据库连接、处理异常等繁琐的细节。
-
自动事务管理:Spring Boot Starter JDBC 集成了 Spring 的事务管理机制。你可以使用注解来标记事务边界,当执行数据库操作时,Spring Boot Starter JDBC 将自动处理事务的开始、提交或回滚。
通过使用 Spring Boot Starter JDBC,你可以更加方便地与关系型数据库进行交互,并且减少了手动配置和管理的工作。它提供了一种简单且灵活的方式来访问数据库,同时利用 Spring Boot 的自动配置机制,减少了许多样板代码和繁琐的配置。
值得注意的是,Spring Boot Starter JDBC 本身并不提供具体的数据库驱动程序,它依赖于你选择的数据库驱动作为底层依赖。因此,在使用 Spring Boot Starter JDBC 之前,你需要添加适当的数据库驱动程序依赖,以与目标数据库进行连接。
2.Project Lombok
Project Lombok 是一个 Java 库,旨在通过自动化生成样板代码来简化 Java 类的开发。它通过使用注解来减少冗余的代码,提高开发效率。
Project Lombok 提供了许多注解,每个注解都对应着一项功能。以下是一些常用的 Project Lombok 注解及其功能:
-
@Getter
和@Setter
:自动生成属性的 getter 和 setter 方法。 -
@ToString
:自动生成toString()
方法,方便对象的打印和日志输出。 -
@EqualsAndHashCode
:自动生成equals()
和hashCode()
方法,用于对象的比较和哈希计算。 -
@NoArgsConstructor
和@AllArgsConstructor
:分别生成无参构造函数和包含所有参数的构造函数。 -
@Data
:结合了@Getter
、@Setter
、@ToString
、@EqualsAndHashCode
和@NoArgsConstructor
的功能,一次性生成所有常用的方法和构造函数。 -
@Builder
:生成建造者模式的构造器,用于简化复杂对象的创建。 -
@Slf4j
:自动生成一个名为log
的日志记录器,方便在类中进行日志输出。
使用 Project Lombok,你可以通过在类上添加注解来自动生成常见的方法和构造函数,从而减少了样板代码的编写。这样一来,你可以更加专注于业务逻辑的实现,而不必过多关注属性的访问器、构造函数等细节。
在使用 Project Lombok 时,你需要在项目的构建工具(如 Maven 或 Gradle)中添加 Lombok 作为依赖,并在开发工具中安装 Lombok 插件,以确保注解能够被正确处理和识别。
需要注意的是,虽然 Project Lombok 可以提高开发效率,但过度使用注解可能会导致代码可读性和维护性的降低。因此,在使用时应谨慎选择和使用合适的注解。
3.MySQL Connector/J
MySQL Connector/J 是 MySQL 官方提供的用于 Java 程序与 MySQL 数据库进行连接和交互的 JDBC 驱动程序。
MySQL Connector/J 提供了以下主要功能:
-
数据库连接:它实现了 JDBC(Java Database Connectivity)接口,使得 Java 应用程序可以通过标准的 JDBC API 来与 MySQL 数据库建立连接。
-
SQL 执行:它提供了执行 SQL 语句和操作数据库的方法。你可以使用它执行各种 SQL 命令,包括查询、插入、更新、删除等。
-
事务支持:MySQL Connector/J 支持事务处理,你可以使用 JDBC 提供的事务管理方法来控制和处理数据库事务。
-
数据类型映射:它提供了将 Java 数据类型与 MySQL 数据库数据类型进行映射的机制。这样,在使用 JDBC 时,你可以方便地处理不同类型的数据。
-
连接池支持:MySQL Connector/J 支持连接池功能,可以有效地管理和重用数据库连接,提高应用程序的性能和效率。
MySQL Connector/J 是一个成熟和广泛使用的 JDBC 驱动程序,被广泛应用于 Java 开发中与 MySQL 数据库的交互。你可以通过 MySQL 官方网站或 Maven 等构建工具获得 MySQL Connector/J 的最新版本。
使用 MySQL Connector/J,你可以轻松地在 Java 应用程序中连接和操作 MySQL 数据库,执行各种数据库操作,并与其他 Java 技术(如 Spring、Hibernate 等)进行集成。
4.mybatis-plus-boot-starter
MyBatis-Plus 是一个基于 MyBatis 的增强工具,提供了一套更加便捷、高效的数据库访问解决方案。mybatis-plus-boot-starter 是 MyBatis-Plus 提供的用于与 Spring Boot 框架集成的启动器(Starter)。
mybatis-plus-boot-starter 提供了以下主要功能:
-
简化 SQL 操作:MyBatis-Plus 提供了一系列简化 SQL 操作的方法和注解,可以通过方法名或注解来完成常见的 CRUD(增删改查)操作,减少手动编写 SQL 的工作量。
-
自动生成代码:MyBatis-Plus 提供了代码生成器,可以根据数据库表结构自动生成实体类、Mapper 接口和 XML 映射文件,极大地简化了开发过程。
-
分页查询支持:MyBatis-Plus 提供了方便的分页查询功能,可以轻松实现分页查询结果的返回。
-
乐观锁支持:MyBatis-Plus 提供了乐观锁的支持,可以简化并发环境下数据更新冲突的处理。
-
条件构造器:MyBatis-Plus 提供了强大的条件构造器,可以动态拼装查询条件,灵活地构建复杂的查询语句。
-
自动填充字段:MyBatis-Plus 支持在插入或更新操作时自动填充指定的字段,如创建时间、更新时间等。
使用 mybatis-plus-boot-starter,你可以方便地集成 MyBatis-Plus 到 Spring Boot 项目中。只需在项目的构建工具(如 Maven 或 Gradle)中添加相应的依赖,然后通过配置文件进行简单的配置,即可开始使用 MyBatis-Plus 提供的强大功能。
MyBatis-Plus 是一个非常受欢迎的持久层框架,它在 MyBatis 的基础上提供了更多便利和强大的功能,可以大幅提升开发效率和代码质量。
5.mybatis-plus-generator
MyBatis-Plus Generator 是 MyBatis-Plus 框架提供的一种代码生成工具,用于根据数据库表结构自动生成实体类、Mapper 接口和 XML 映射文件等代码文件。
MyBatis-Plus Generator 提供了以下主要功能:
-
代码生成:它可以根据数据库表结构自动生成实体类、Mapper 接口和 XML 映射文件的代码。你只需配置相应的数据源和表信息,Generator 将会自动生成对应的代码文件,大大减少了手动编写这些重复的代码的工作量。
-
代码模板自定义:MyBatis-Plus Generator 提供了丰富的代码模板,你可以根据需求自定义生成的代码格式和结构。通过自定义代码模板,你可以根据团队的编码规范和项目的特定需求生成符合要求的代码。
-
灵活的配置选项:Generator 提供了许多配置选项,可以灵活地指定生成代码的细节,如生成的包路径、命名规则、注释信息等。你可以根据项目的需要进行适当的配置,以生成符合项目标准的代码。
-
支持多种数据库:MyBatis-Plus Generator 支持多种常见的关系型数据库,如 MySQL、Oracle、SQL Server 等。你可以根据项目所使用的数据库选择相应的数据库驱动和配置,以生成适配目标数据库的代码。
使用 MyBatis-Plus Generator,你可以快速、方便地生成与数据库表对应的实体类、Mapper 接口和 XML 映射文件,减少了手动编写这些重复代码的工作量,提高了开发效率。
MyBatis-Plus Generator 是 MyBatis-Plus 框架的一个重要组成部分,与其它 MyBatis-Plus 的功能搭配使用,可以更好地实现数据访问层的开发。
6.spring-boot-starter-security
spring-boot-starter-security
是 Spring Boot 框架提供的一个起步依赖(Starter Dependency),用于集成和快速配置 Spring Security。
Spring Security 是一个功能强大且广泛使用的身份验证和授权框架,用于保护应用程序的安全性。它提供了一套全面的安全性解决方案,包括身份验证、授权、攻击防护等功能。
使用 spring-boot-starter-security
,你可以很容易地将 Spring Security 集成到你的 Spring Boot 项目中,而无需手动配置大量的安全性相关的代码。
该起步依赖会自动引入 Spring Security 相关的依赖项,并提供一些默认的安全配置,如:
-
身份验证:启用基于表单的身份验证,包括登录页面和用户认证功能。
-
授权:提供了基于角色或权限的访问控制,可以定义哪些用户具有访问应用程序的特定部分或功能的权限。
-
安全性端点:保护了一些敏感的管理端点,如监控端点、健康检查等。
-
CSRF(Cross-Site Request Forgery)保护:默认开启了 CSRF 保护,防止跨站请求伪造攻击。
通过自定义配置类或属性,你可以对 Spring Security 进行进一步的定制和扩展,以满足你的应用程序特定的安全需求。
需要注意的是,使用 spring-boot-starter-security
引入 Spring Security 依赖后,默认情况下所有的请求都会被拦截并要求进行身份验证。如果你不需要安全性功能,或者希望自定义更复杂的安全策略,请确保正确配置和调整相关的安全规则。
总结来说,spring-boot-starter-security
是一个方便的起步依赖,用于在 Spring Boot 项目中集成和配置 Spring Security,提供身份验证、授权和安全保护的功能。
7.jjwt-api
“jjwt-api” 是指 JSON Web Token (JWT) 的 Java 实现库中的 API 部分。JWT 是一种用于安全传输信息的开放标准(RFC 7519),它将信息封装在一个安全的、可靠的 JSON 对象中,并使用数字签名或加密来验证其完整性和真实性。
jjwt-api 是 jjwt(Java JWT)库的核心 API 模块,提供了创建、解析和验证 JWT 的功能。它包含了以下主要类和接口:
-
JwtBuilder:用于创建 JWT 的构建器接口,可以设置 JWT 的头部信息、声明(Payload)和签名等内容。
-
Jwts:提供了一组静态方法,用于创建和解析 JWT。它包括创建 JWT、解析 JWT、验证 JWT 的签名等功能。
-
Claims:表示 JWT 的声明部分,可以通过它获取 JWT 中的各个声明信息。
jjwt-api 提供了简单易用的 API,使得在 Java 应用程序中使用 JWT 变得更加便捷。你可以使用 jjwt-api 创建 JWT,并将其用于身份验证、授权、会话管理等场景中。
需要注意的是,jjwt-api 只提供了 JWT 的核心功能,即创建、解析和验证 JWT,而不包含具体的加密算法或密钥管理。如果需要使用特定的加密算法,你可以选择 jjwt 提供的其他模块(如 jjwt-impl、jjwt-jackson 等),或者结合其他库使用。
8.jjwt-impl
“jjwt-impl” 是 JSON Web Token (JWT) 的 Java 实现库中的实现模块。在 jjwt (Java JWT) 库中,jjwt-impl 模块提供了 JWT 的具体实现和相关的功能。
jjwt-impl 模块包含了以下主要功能:
-
JWT 的创建和解析:jjwt-impl 提供了具体的实现类,用于创建 JWT 并解析 JWT。它实现了 JwtBuilder 和 Jwts 接口定义的方法,可以方便地设置 JWT 的头部信息、声明和签名等,并解析 JWT 中的信息。
-
签名和验证:jjwt-impl 支持使用各种算法对 JWT 进行签名,如 HMAC(HMACSHA256、HMACSHA384、HMACSHA512)和 RSA(RS256、RS384、RS512)等。它提供了签名和验证签名的方法,用于确保 JWT 的完整性和真实性。
-
加密和解密:jjwt-impl 还支持使用对称加密和非对称加密算法对 JWT 进行加密。它提供了加密和解密的方法,用于保护 JWT 中的敏感信息。
jjwt-impl 模块是 jjwt 库的核心实现部分,它提供了创建、解析和验证 JWT 的具体实现,以及相关的签名和加密功能。你可以使用 jjwt-impl 模块来构建和处理 JWT,以满足身份验证、授权、会话管理等安全需求。
需要注意的是,使用 jjwt-impl 模块时,你可能还需要引入其他依赖项,如 JSON 库(如 Jackson、Gson)和相应的加密算法库(如 Bouncy Castle)等,以满足具体的编译和运行要求。
9.jjwt-jackson
“jjwt-jackson” 是 JSON Web Token (JWT) 的 Java 实现库中的 Jackson 序列化和反序列化模块。在 jjwt(Java JWT)库中,jjwt-jackson 模块提供了使用 Jackson JSON 库进行 JWT 对象的序列化和反序列化的支持。
jjwt-jackson 模块包含了以下主要功能:
-
JWT 对象的序列化:jjwt-jackson 提供了将 JWT 对象序列化为 JSON 字符串的功能。它使用 Jackson 库的 ObjectMapper 将 JWT 对象转换为标准的 JSON 格式。
-
JWT 对象的反序列化:jjwt-jackson 支持将 JSON 字符串反序列化为 JWT 对象。它使用 Jackson 库的 ObjectMapper 将 JSON 字符串转换为 JWT 对象,以便进行解析和访问其中的信息。
jjwt-jackson 模块简化了使用 jjwt 库时 JWT 对象与 JSON 字符串之间的转换过程。通过集成 Jackson 库,你可以方便地将 JWT 对象转换为 JSON 字符串,并将 JSON 字符串转换为 JWT 对象,以便进行进一步的处理和解析。
在使用 jjwt-jackson 之前,你需要确保已经引入了 Jackson JSON 库的相关依赖,如 jackson-databind、jackson-core 等。