4.Spring IO
Spring IO📖 内容 SpringBoot 之异步请求 SpringBoot 之 Json SpringBoot 之邮件 📚 资料 官方 Spring 官网 Spring Framework 官方文档 Spring Github 书籍 《Spring In Action》 教程 《小马哥讲 Spring 核心编程思想》 geekbang-lessons 跟我学 Spring3 🚪 传送◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 我的博客 ◾
2.Spring 数据篇
Spring 数据篇📖 内容 Spring 之数据源 Spring 之 JDBC Spring 之事务 Spring 之 JPA Spring 集成 Mybatis Spring 访问 Redis Spring 访问 MongoDB Spring 访问 Elasticsearch 💻 示例 JDBC spring-data-jdbc-basics - Spring Boot 以 JDBC 方式访问关系型数据库,通过 JdbcTemplate 执行基本的 CRUD 操作。 spring-data-jdbc-druid - SpringBoot 使用 Druid 作为数据库连接池。 spring-data-jdbc-multi-datasource - SpringBoot 连接多数据源示例。 spring-data-jdbc-xml - Spring 以 JDBC 方式访问关系型数据库,通过 JdbcTemplate 执行基本的 CRUD 操作。 ORM spring-data-orm-jpa - SpringBoot 使用 JPA 作为 ORM 框架访问数据库示例。 s...
SQL Cheat Sheet
SQL Cheat Sheet查找数据的查询SELECT: 用于从数据库中选择数据 SELECT * FROM table_name; DISTINCT: 用于过滤掉重复的值并返回指定列的行 SELECT DISTINCT column_name; WHERE: 用于过滤记录/行 SELECT column1, column2 FROM table_name WHERE condition; SELECT * FROM table_name WHERE condition1 AND condition2; SELECT * FROM table_name WHERE condition1 OR condition2; SELECT * FROM table_name WHERE NOT condition; SELECT * FROM table_name WHERE condition1 AND (condition2 OR condition3); SELECT * FROM table_name WHERE EXISTS (SELECT column_name...
SpringBoot Actuator 快速入门
SpringBoot Actuator 快速入门spring-boot-actuator 模块提供了 Spring Boot 的所有生产就绪功能。启用这些功能的推荐方法是添加 spring-boot-starter-actuator 依赖。 如果是 Maven 项目,添加以下依赖: 123456<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency></dependencies> 如果是 Gradle 项目,添加以下声明: 123dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator...
源码级深度理解 Java SPI
源码级深度理解 Java SPISPI 简介SPI 全称 Service Provider Interface,是 Java 提供的,旨在由第三方实现或扩展的 API,它是一种用于动态加载服务的机制。Java 中 SPI 机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是 解耦。 Java SPI 有四个要素: SPI 接口:为服务提供者实现类约定的的接口或抽象类。 SPI 实现类:实际提供服务的实现类。 SPI 配置:Java SPI 机制约定的配置文件,提供查找服务实现类的逻辑。配置文件必须置于 META-INF/services 目录中,并且,文件名应与服务提供者接口的完全限定名保持一致。文件中的每一行都有一个实现服务类的详细信息,同样是服务提供者类的完全限定名称。 ServiceLoader:Java SPI 的核心类,用于加载 SPI 实现类。 ServiceLoader 中有各种实用方法来获取特定实现、迭代它们或重新加载服务。 SPI 示例正所谓,实践出真知,我们不妨通过一个具体的示例来看一下,如何使用 Java SPI。 S...
Java 基础语法特性
Java 基础语法特性注释空白行,或者注释的内容,都会被 Java 编译器忽略掉。 Java 支持多种注释方式,下面的示例展示了各种注释的使用方式: 12345678910111213public class HelloWorld { /* * JavaDoc 注释 */ public static void main(String[] args) { // 单行注释 /* 多行注释: 1. 注意点a 2. 注意点b */ System.out.println("Hello World"); }} 基本数据类型 👉 扩展阅读:深入理解 Java 基本数据类型 变量和常量Java 支持的变量类型有: 局部变量 - 类方法中的变量。 成员变量(也叫实例变量) - 类方法外的变量,不过没有 static 修饰。 静态变量(也叫类变量) - 类方法外的变量,用 static 修饰。 特...
SpringBoot 之快速入门
SpringBoot 之快速入门Spring Boot 简介Spring Boot 可以让使用者非常方便的创建 Spring 应用。 Spring Boot 的目标是: 为所有 Spring 开发者提供更快且可广泛访问的入门体验。 开箱即用 提供一系列通用的非功能特性(例如嵌入式服务、安全、指标、健康检查和外部化配置) 完全不需要代码生成,也不需要 XML 配置。 Spring Boot 系统要求Spring Boot 的构建工具要求: Build Tool Version Maven 3.5+ Gradle 6.8.x, 6.9.x, and 7.x Spring Boot 支持的 Servlet 容器: Name Servlet Version Tomcat 9.0 4.0 Jetty 9.4 3.1 Jetty 10.0 4.0 Undertow 2.0 4.0 部署第一个 Spring Boot 项目 本节介绍如何开发一个小的“Hello World!” web 应用示例,来展示 Spring Boot 的一些关键功能。...
Java 编码和加密
Java 编码和加密 关键词:Base64、消息摘要、数字签名、对称加密、非对称加密、MD5、SHA、HMAC、AES、DES、DESede、RSA Base64 编码Base64 原理Base64 内容传送编码是一种以任意 8 位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64 是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的 ASCII 字符序列,常用在需用通过文本协议(比如 HTTP 和 SMTP)来传输二进制数据的情况下。Base64 并不是加密解密算法,尽管我们有时也听到使用 Base64 来加密解密的说法,但这里所说的加密与解密实际是指编码(encode) 和 解码(decode)的过程,其变换是非常简单的,仅仅能够避免信息被直接识别。 Base64 算法主要是将给定的字符以字符编码(如 ASCII 码,UTF-8 码)对应的十进制数为基准,做编码操作: 将给定的字符串以字符为单位,转换为对应的字符编码。 将获得字符编码转换为二进制 对二进制码做分组转换,每 3 个字节为一组,转换为每 4 个 6 位二进制位一组(不足 6 位时低位补 ...
SpringBoot 之安全快速入门
SpringBoot 之安全快速入门QuickStart(1)添加依赖 12345678<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency> (2)添加配置 123spring.security.user.name = rootspring.security.user.password = rootspring.security.user.roles = USER (3)启动应用后,访问任意路径,都会出现以下页面...
深入理解 Java String 类型
深入理解 Java String 类型 String 类型可能是 Java 中应用最频繁的引用类型,但它的性能问题却常常被忽略。高效的使用字符串,可以提升系统的整体性能。当然,要做到高效使用字符串,需要深入了解其特性。 String 的不可变性我们先来看下 String 的定义: 1234public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; String 类被 final 关键字修饰,表示不可继承 String 类。 String 类的数据存储于 char[] 数组,这个数组被 final 关键字修饰,表示 String 对象不可被更改。 为什么 Java 要这样设计? (1)保证 String 对象安全性。避免 String 被篡改。 (2)保证 has...