Fork me on GitHub
摘要: 很多数据仓库产品都采用了列式存储。如果数据表的总列数很多而计算涉及的列很少,采用列存就只读取需要的列即可,能够减少硬盘访问量,提高性能。特别是数据量非常大时,硬盘扫描和读取的时间占比很大,这时候列存的优势会很明显。 那么,是不是只要用了列存就一定能做到性能最佳呢?我们来看看,列式存储在哪些方面还可以 阅读全文
posted @ 2022-11-10 09:42 Java中文社群 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 前段时间的俄乌冲突,Oracle宣布“暂停在俄罗斯的所有业务”,相信大家的心情绝不是隔岸观火,而是细思恐极。 数据库号称IT领域三大核心之一(其他两个是CPU和操作系统),一直以来都被国际巨头垄断,人家控制着核心,想什么时候锁喉就什么时候锁,你一点办法都没有。 现在解决这个问题的办法只能是自强,将数 阅读全文
posted @ 2022-10-24 22:20 Java中文社群 阅读(31) 评论(0) 推荐(0) 编辑
摘要: MD5 是 Message Digest Algorithm 的缩写,译为信息摘要算法,它是 Java 语言中使用很广泛的一种加密算法。MD5 可以将任意字符串,通过不可逆的字符串变换算法,生成一个唯一的 MD5 信息摘要,这个信息摘要也就是我们通常所说的 MD5 字符串。那么问题来了,MD5 加密 阅读全文
posted @ 2022-10-18 20:30 Java中文社群 阅读(1499) 评论(22) 推荐(2) 编辑
摘要: 过滤器(Filter)和拦截器(Interceptor)都是基于 AOP(Aspect Oriented Programming,面向切面编程)思想实现的,用来解决项目中某一类问题的两种“工具”,但二者有着明显的差距,接下来我们一起来看。 实现过滤器和拦截器 首先,我们先来看一下二者在 Spring 阅读全文
posted @ 2022-10-16 19:25 Java中文社群 阅读(668) 评论(0) 推荐(3) 编辑
摘要: 事务隔离级别和事务传播机制都是对事务行为的规范,但二者描述的侧重点却不同。本文这里所说的事务隔离级别和事务传播机制指的是 Spring 框架中的机制。 1、事务隔离级别 事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。 比如,有两个事务同时 阅读全文
posted @ 2022-10-09 20:42 Java中文社群 阅读(363) 评论(0) 推荐(2) 编辑
摘要: 加入事务和嵌套事务是指在 Spring 事务传播机制中的加入事务(REQUIRED)和嵌套事务(NESTED)的区别,二者看似很像,实则截然不同,那么它们有什么区别呢?接下来我们一起来看。 Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的,Spring 事 阅读全文
posted @ 2022-10-07 17:07 Java中文社群 阅读(398) 评论(0) 推荐(1) 编辑
摘要: Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 既然是“事务传播”,所以事务的数量应该在两个或两个以上,Spring 事务传播机制的诞生是为了规定多个事务在传播过程中的行为的。比如方法 A 开启了事务,而在执行过程中又调用了开启事务的 B 方法,那么 阅读全文
posted @ 2022-09-27 20:28 Java中文社群 阅读(548) 评论(1) 推荐(2) 编辑
摘要: 在 Spring Boot 中,造成事务不自动回滚的场景有很多,比如以下这些: 非 public 修饰的方法中的事务不自动回滚; 当 @Transactional 遇上 try/catch 事务不自动回滚; 调用类内部的 @Transactional 方法事务不自动回滚; 抛出检查异常时事务不自动回 阅读全文
posted @ 2022-09-25 21:01 Java中文社群 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 导致 @Transactional 失效的常见场景有以下 5 个: 非 public 修饰的方法; timeout 超时时间设置过小; 代码中使用 try/catch 处理异常; 调用类内部的 @Transactional 方法; 数据库不支持事务。 很多人只知道答案但不知道原因,这就像只谈恋爱不结 阅读全文
posted @ 2022-09-20 20:33 Java中文社群 阅读(62) 评论(0) 推荐(0) 编辑
摘要: Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别。 1.什么是事务隔离级别? 事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控 阅读全文
posted @ 2022-09-18 20:50 Java中文社群 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 一个程序中不可能没有事务,而 Spring 中,事务的实现方式分为两种:编程式事务和声明式事务,又因为编程式事务实现相对麻烦,而声明式事务实现极其简单,所以在日常项目中,我们都会使用声明式事务 @Transactional 来实现事务。 @Transactional 使用极其简单,只需要在类上或方法 阅读全文
posted @ 2022-09-14 19:45 Java中文社群 阅读(588) 评论(0) 推荐(2) 编辑
摘要: 在 Spring Boot 中操作事务有两种方式:编程式事务或声明式事务,接下来我们一起来看二者的具体实现。 1.编程式事务 在 Spring Boot 中实现编程式事务又有两种实现方法: 使用 TransactionTemplate 对象实现编程式事务; 使用更加底层的 TransactionMa 阅读全文
posted @ 2022-09-12 21:01 Java中文社群 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 但这个保护机制也带来了新的问题,它的问题是给不同站点之间的正常调用,也带来的阻碍,那怎么解决这个问题呢?接下来我们一起来看。 1.跨域三种情况 在 阅读全文
posted @ 2022-09-07 20:52 Java中文社群 阅读(612) 评论(0) 推荐(0) 编辑
摘要: Java 中的公共类称之为 Bean 或 Java Bean,而 Spring 中的 Bean 指的是将对象的生命周期,交个 Spring IoC 容器来管理的对象。所以 Spring 中的 Bean 对象在使用时,无需通过 new 来创建对象,只需要通过 DI(依赖注入),从 Spring 中取出 阅读全文
posted @ 2022-09-05 20:49 Java中文社群 阅读(721) 评论(0) 推荐(3) 编辑
摘要: Spring 框架作为一个管理 Bean 的 IoC 容器,那么 Bean 自然是 Spring 中的重要资源了,那 Bean 的作用域是什么意思?又有几种类型呢?接下来我们一起来看。 PS:Java 中的公共类可称之为 Bean 或 Java Bean。 1.作用域 Bean 的作用域是指 Bea 阅读全文
posted @ 2022-08-31 09:26 Java中文社群 阅读(534) 评论(1) 推荐(1) 编辑
摘要: Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:注册中心和配置中心,我们今天来了解和实现一下二者。 1.Naco 阅读全文
posted @ 2022-08-30 20:47 Java中文社群 阅读(685) 评论(0) 推荐(3) 编辑
摘要: @Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它。 @Autowired 和 @Resource 的区别主要体现在 阅读全文
posted @ 2022-08-29 08:38 Java中文社群 阅读(763) 评论(0) 推荐(2) 编辑
摘要: Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:服务注册中心(服务注册和发现)功能,和统一配置中心功能。 Nac 阅读全文
posted @ 2022-08-28 22:24 Java中文社群 阅读(509) 评论(1) 推荐(2) 编辑
摘要: IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(IoC)具体实现。那么 DI 实现依赖注入的方式有几种?这些注入方式又有什么不同?接下来,我们一起来看。 阅读全文
posted @ 2022-08-24 08:38 Java中文社群 阅读(672) 评论(0) 推荐(2) 编辑
摘要: ${} 和 #{} 都是 MyBatis 中用来替换参数的,它们都可以将用户传递过来的参数,替换到 MyBatis 最终生成的 SQL 中,但它们区别却是很大的,接下来我们一起来看。 1.功能不同 ${} 是将参数直接替换到 SQL 中,比如以下代码: <select id="getUserById 阅读全文
posted @ 2022-08-23 08:44 Java中文社群 阅读(275) 评论(0) 推荐(3) 编辑
摘要: Spring Boot 中读取配置文件有以下 5 种方法: 使用 @Value 读取配置文件。 使用 @ConfigurationProperties 读取配置文件。 使用 Environment 读取配置文件。 使用 @PropertySource 读取配置文件。 使用原生方式读取配置文件。 它们 阅读全文
posted @ 2022-08-17 08:51 Java中文社群 阅读(593) 评论(0) 推荐(5) 编辑
摘要: properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。 properti 阅读全文
posted @ 2022-08-15 08:43 Java中文社群 阅读(737) 评论(0) 推荐(3) 编辑
摘要: IoC 和 DI 都是 Spring 框架中的重要概念,就像玫瑰花与爱情一样,IoC 和 DI 通常情况下也是成对出现的。那 IoC 和 DI 什么关系和区别呢?接下来,我们一起来看。 1.IoC 介绍 IoC 是 Inversion of Control 的缩写,翻译成中文是“控制反转”的意思,它 阅读全文
posted @ 2022-08-10 08:40 Java中文社群 阅读(937) 评论(3) 推荐(1) 编辑
摘要: 在浏览器中输入 URL 之后,它会执行以下几个流程: 执行 DNS 域名解析; 封装 HTTP 请求数据包; 封装 TCP 请求数据包; 建立 TCP 连接(3 次握手); 参数从客户端传递到服务器端; 服务器端得到客户端参数之后,进行相应的业务处理,再将结果封装成 HTTP 包,返回给客户端; 服 阅读全文
posted @ 2022-08-08 09:18 Java中文社群 阅读(573) 评论(1) 推荐(2) 编辑
摘要: GET 和 POST 是 HTTP 请求中最常用的两种请求方法,在日常开发的 RESTful 接口中,都能看到它们的身影。而它们之间的区别,也是一道常见且经典的面试题,所以我们本文就来详细的聊聊。 HTTP 协议定义的方法类型总共有以下 10 种: PS:目前大部分的网站使用的都是 HTTP 1.1 阅读全文
posted @ 2022-08-03 08:43 Java中文社群 阅读(1435) 评论(3) 推荐(4) 编辑