- 博客(13)
- 资源 (67)
- 收藏
- 关注
原创 5分钟实现用docker搭建Redis集群模式和哨兵模式
如果让你为开发、测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短。 是的,你已经猜到了,用docker部署,真的只需要十几分钟。 一.准备工作拉取redis镜像运行如下命令: docker pull redis该命令拉取的镜像是官方镜像,当然你可以搜索其他的镜像,这里不做深入查看镜像情况:二.部署redis哨兵主从模式什么是哨兵模式?--请自行百度 1、什么是docker compose?Docker Compose 可以理解为将多个
2021-09-29 11:45:04 456
原创 Spring系列之Redis的两种集成方式
在工作中,我们用到分布式缓存的时候,第一选择就是Redis,今天介绍一下SpringBoot如何集成Redis的,分别使用Jedis和Spring-data-redis两种方式。一、使用Jedis方式集成1、增加依赖<!-- spring-boot-starter-web不是必须的,这里是为了测试--><dependency> <groupId>org.springframework.boot</groupId> <artifac
2021-09-28 13:26:19 675
原创 Spring系列之集成MongoDB的2种方法
MongoDB是最流行的NoSQL数据库,SpringBoot是使用Spring的最佳实践。今天带大家讲一讲SpringBoot集成MongoDB的两种方式,MongoDB的安装自行去官网查询,本地开发最方便的做法是使用Docker方式。 一、准备工作1、工程生成老规矩,使用https://start.spring.io/ 选择我们要依赖的jar包,生成一个demo,然后导入到Idea中2、配置项在application.properties文件中,配置MongoDB的地址 spring.
2021-09-13 12:24:16 676
原创 Spring系列之Mybatis动态代理实现全过程?回答正确率不到1%
面试中,可能会问到Spring怎么绑定Mapper接口和SQL语句的。一般的答案是Spring会为Mapper生成一个代理类,调用的时候实际调用的是代理类的实现。但是如果被追问代理类实现的细节,很多同学会卡壳,今天借助2张图来阅读一下代码如何实现的。一、代理工厂类生成的过程步骤1在启动类上加上注解MapperScan @SpringBootApplication@MapperScan(basePackages = "com.example.springdatasourcedruid.
2021-09-08 21:43:47 383
原创 Spring系列之JDBC对不同数据库异常如何抽象的?
前言使用Spring-Jdbc的情况下,在有些场景中,我们需要根据数据库报的异常类型的不同,来编写我们的业务代码。比如说,我们有这样一段逻辑,如果我们新插入的记录,存在唯一约束冲突,就会返回给客户端描述:记录已存在,请勿重复操作代码一般是这么写的: @Resourceprivate JdbcTemplate jdbcTemplate;public String testAdd(){ try { jdbcTemplate.execute("INSERT INTO u
2021-09-06 09:33:31 779
原创 Spring系列之事物是如何管理的
前言我们都知道Spring给我们提供了很多抽象,比如我们在操作数据库的过程中,它为我们提供了事物方面的抽象,让我们可以非常方便的以事物方式操作数据库。不管你用JDBC、Mybatis、Hibernate等任何一种方式操作数据库,也不管你使用DataSource还是JTA的事物,Spring事物抽象管理都能很好的把他统一在一起。接下来看一下事物的抽象核心接口 Spring事务抽象*PlatformTransactionManager是事物管理器接口 * //事务管理器接口有以下几个接口,获取事物信息
2021-09-02 12:52:46 171
原创 Spring系列之集成Druid连接池及监控配置
前言前一篇文章我们熟悉了HikariCP连接池,也了解到它的性能很高,今天我们讲一下另一款比较受欢迎的连接池:Druid,这是阿里开源的一款数据库连接池,它官网上声称:为监控而生!他可以实现页面监控,看到SQL的执行次数、时间和慢SQL信息,也可以对数据库密码信息进行加密,也可以对监控结果进行日志的记录,以及可以实现对敏感操作实现开关,杜绝SQL注入,下面我们详细讲一下它如何与Spring集成,并且顺便了解一下它的监控的配置。 文章要点: Spring集成Druid 监控Filters配置(
2021-08-29 21:44:16 2277
原创 Spring系列之HikariCP连接池
上两篇文章,我们讲到了Spring中如何配置单数据源和多数据源,配置数据源的时候,连接池有很多选择,在SpringBoot 1.0中使用的是Tomcat的DataSource,在SpringBoot 2.0中,我们使用默认连接池是HikariCP,本文讲一下HikariCP。 为什么SpringBoot 2.0要选择HikariCP来作为默认的连接池呢?我们先看一下官网的一张对比图。一个连接周期定义为单个DataSource.getConnection()/ Connection.close()。
2021-08-25 16:15:36 422
原创 Spring系列之多个数据源配置
前言在上篇文章讲到了如何配置单数据源,但是在实际场景中,会有需要配置多个数据源的场景,比如说,我们在支付系统中,单笔操作(包含查询、插入、新增)中需要操作主库,在批量查询或者对账单查询等对实时性要求不高的场景,需要使用读库来操作,依次来减轻数据库的压力。那么我们如何配置多数据源? 这里还是基于springboot应用的情况下,我们看一下怎么配置。因为SpringBoot会实现自动配置,但是SpringBoot并不知道我们的业务场景分别要使用哪一个数据源,因此我们需要把相关的自动配置关闭。 首先,生
2021-08-24 14:15:43 292
原创 Spring全家桶--单数据源的配置
前言spring数据源的配置网络上有很多例子,这里我也来介绍一下单数据源配置的例子,基于SpringBoot的方式和原生的Spring的方式。一、生成项目骨架(SpringBoot),运行一个简单的程序访问:https://start.spring.io/ ,选择必要的依赖下面我们先看下Application类的代码: @SpringBootApplication@Slf4jpublic class SpringDatasourceApplication implements Command
2021-08-22 23:51:00 243
原创 如何设计一个优秀的秒杀系统?
前言如果问起秒杀系统如何设计,相信都能说出个123来,但是如果细究其中的细节点,很多人估计就无法很快的打上来了。本文从六个方面,来简要讲一下秒杀系统要如何设计,应该主要哪些事情。01 | 设计秒杀系统时应该注意的5个架构原则 说起秒杀,我想你肯定不陌生,这两年,从双十一购物到春节抢红包,再到 12306 抢火车票,“秒杀”的场景处处可见。简单来说,秒杀就是在同一个时刻有大量的请求争抢购买同一个商品并完成交易的过程,用技术的行话来说就是大量的并发读和并发写。不管是哪一门语言,并发都是程序员们最为头疼的部
2021-08-19 17:32:45 361
原创 spring-data-jdbc的基础使用(一)
前言很多人知道Mybatis,知道Jpa,但是对spring-data-jdbc可能了解的少之又少。注意我们这里说的是data-jdbc,而不是普通的jdbc。它拥有了类似jpa的一些特性,比如能够根据方法名推导出sql,基本的CRUD等,也拥有了写原生sql的能力。最为关键的是,它非常的清爽,不需要依赖hibernte或者jpa。一、使用https://start.spring.io/ ,建立一个demo二、使用 Java 配置的 Spring Data JDBC// @EnableJdbcR
2021-08-18 17:57:24 862
原创 MySQL为什么不支持中文排序?
前言或许都知道,MySQL不支持中文排序,这样的说法可以说对也可以说也不对。接下来我们分析一下:首先执行命令,查看编码集:SHOW VARIABLES LIKE 'character_set%';可以看到字符集是utf8mb4,这个字符集是市面上比较使用非常多的字符集我们再看下,这个字符集对应的排序规则有哪些?show collation like 'utf8mb4%';图中可以看到,utf8mb4有很多的排序规则,比如说通用的uft8mb4_general
2021-08-13 16:49:28 237
ORACLE.10G入门与实践(1)
2011-06-19
Struts_Hibernate_Spring集成开发宝典(3)
2011-06-19
Struts_Hibernate_Spring集成开发宝典(2)
2011-06-19
Ubuntu-Manual-9.10(Ubuntu安装配置指南)
2011-06-19
SUN JAVA培训教程中文版
2011-06-19
Spring开发指南
2011-06-19
Spring:JdbcTemplate使用指南
2011-06-19
JSP健身中心综合管理系统的设计与开发
2011-06-19
Office技巧1000例
2011-06-18
Macromedia Dreamweaver精华手册
2011-06-18
Linux知识集合(很全)
2011-06-18
Linux部分命令解释
2011-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人