自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 接口幂等性-学习笔记

接口幂等性什么是幂等性接口幂等性就是用户对同一操作发起的一次请求或多次请求的结果是一致的,不会应为多次点击而产生问题,例如:支付场景,用户购买了商品支付和扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录变成了两条,这就是没有保证接口的幂等性产生的问题。可能出现幂等性问题的情况例如用户点击了多次按钮用户页面回退后再次提交微服务之间互相调用是,由于网络等其它原因,导致请求失败,feign 出发重试机制什么

2022-02-26 21:34:54 542

原创 RabitMQ基础学习笔记

概述大多应用中,可以通过消息服务中间件来提升系统异步通信、拓展解耦能力。消息服务中两个重要概念:消息代理(message broker)目的地(destination)当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形式的目的地队列(queue):点对点消息通信(point-to-point)主题(topic):发布(publish)/订阅(subscribe)消息通信点对点:消息发送者发送消息,消息代理将其放入一个

2022-02-25 22:16:53 1365 1

原创 Feign远程调用丢失请求头问题

在业务中,需要使用A、B两个模块,这些模块使用了SpringSession共享Session数据。在B模块中的业务需要用户登录后才能操作。当A调用B的业务时,在B模块中获取不到用户的Session信息,导致B模块判定该请求用户没有登录导致A模块拿不到所需数据。问题是A模块可以拿到该用户的登录信息并且,已经使用了SpringSession进行共享Session数据。找出问题原因使用Feign发送远程调用当请求进到B服务时被其登录验证拦截器拦截,试图去Session中拿登录信息时,结果为 null(已确

2022-02-25 22:13:16 544

原创 SpringCache

Spring Cache官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#cacheSpring 从3.1开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术并支持使用 JCache(JSR-107)注解简化我们开发。Cache 接口为缓存的组

2022-01-07 17:09:36 939

原创 缓存数据的一致性

缓存数据的一致性读所有的数据,首先去缓存中获取,缓存中没有就去读数据库,最后在缓存中放一份。如果该数据在数据库中发生改变,那么缓存里面的数据如何和数据库保持一致?解决这个问题,目前有两个用的非常多的场景:双写模式失效模式双写模式修改数据库的数据后再修改缓存中的数据但又引出了一个问题,那就是当有并发时,线程一将数据库的值改为「一号」然后立刻将这个值保存到缓存,而保存过程中遇到了种种原因,如网络波动,导致了数据延迟抵达缓存服务器,而此时线程二已经将数据库数据改为「二号」然后将数据保存到缓存,线

2022-01-06 21:19:10 387

原创 ElasticSearch 学习笔记

基本概念Index(索引)保存一条数据到 ElasticSearch 中叫做索引一条数据Type(类型)在 Index 中,可以定义一个或多个类型,它类似于 MySQL 中的 Table。每一种类型的数据都放在一起。Document(文档)保存在某个索引下某种类型中的一条数据(Document),在 ES 中,每一个数据都叫文档。 文档是 JSON 格式的,Document 就像是 MySQL 中的某个 Table 里面保存的内容。倒排索引Docker 安装ES、Kibana下载镜像文件

2021-12-21 11:13:10 230

原创 使用nacos作为配置中心统一管理配置

基础环境引入所需依赖包<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>创建一个 bootstrap.properties 或 bootstrap.yaml 。其中指定项目名与配置中心服务器地址spring.ap

2021-11-19 16:40:30 1016

原创 SpringCloud远程服务调用

笔记在微服务中,若想要使用远程调用,需要引入spring-cloud-starter-openfeign(在使用注册中心的环境下)<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>xxx</version><

2021-11-17 10:27:49 2507

原创 SpringBoot Actuator 指标监控

指标监控官网相关文档SpringBoot Actuator未来每一个微服务在云上部署后,需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我门每个微服务快速引用即可获得生产级别的应用监控、审计等功能。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator&l

2021-10-19 10:56:50 498

原创 前端使用代理跨域后后端无法接收Session

将一个 MVC 项目重构为一个前后端分离项目,前端使用了 react + axios + vite…。在前后端分离项目中,通常都会使用代理来解决跨域问题,vite 需要在 vite.config.js 文件中配置代理:export default defineConfig({ server: { // 代理配置 proxy: { // 请求前缀 '/api': { target: 'http://localhost:8080/server_wa

2021-08-28 18:12:04 1199 1

原创 React 学习笔记

未完成React入门React由Facebook开发,它是一个用于构建用户界面/视图的JavaScript库起初由Facebook的软件工程师Jordan Walke创建于2011年部署于Facebook的newsfeed随后在2012年部署于Instagram2013年5月宣布开源。为什么要学React?原生JavaScript操作DOM繁琐、效率低 (DOM-API操作UI)document.getElementById('...');使用JavaScript直接操.

2021-08-17 21:53:29 76

原创 SSM整合

源码GitHub地址导包整的的第一步…先导包SpringAOP增强com.springsource.net.sf.cglib-2.2.0.jarcom.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.aspectj.weaver-1.6.8.RELEASE.jarAOP核心spring-aspects-4.0.0.RELEASE.jarIOC核心包commons-logging-1.1.3.jarsprin

2021-08-17 08:45:45 64

原创 Spring和SpringMVC整合

SpringMVC和Spring整合的目的是为了分工明确。例如:SpringMVC的配置文件就来配置和网站转发逻辑以及网站功能有关的配置,如:视图解析器、文件上传解析器、支持ajax…而Spring的配置文件用来配置和业务有关的,如:事物控制、数据源…import可以在resources文件夹下创建三个配置文件:include-config.xml、spring-config、springmvc-confg在include-config.xml配置文件中使用spring提供的import标签引入并合

2021-08-16 19:25:28 705

原创 SpringMVC学习笔记

SpringMVC学习笔记使用Spring来实现Web模块,简化Web开发Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一Spring3.0后全面超越Struts2,成为最优秀的MVC框架SpringMVC通过一套MVC注解,让POJO(Plain Old Java Object/普通的Java对象)成为处理请求的控制器,而无需实现任何接口支持REST风格的URL请求采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性导包Sp

2021-08-16 10:30:43 137

原创 Spring学习笔记

Spring资料: https://pan.baidu.com/s/1aS4B69iA8-AtXqT7D9obXA 提取码: rczxSpring 是一个开源框架Spring为简化企业级开发而生,使用Spring,javaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能实现,而在Spring中却非常的优雅和简洁。Spring是一个IOC(DI)和AOP容器框架Spring的优良特性非侵入式基于Spring开发的应用中的

2021-08-16 10:18:39 189

原创 手撸Spring整合MyBatis玩具

源码在我GitHub上,有兴趣可以去观望一下:传送门这个只是个玩具、玩具、玩具,正经的还得看官方提供的整合包先说下这个玩具的问题所在吧!====>>> 无法提交事务和无法关闭SqlSession,嗯嗯嗯~~~开始吧~~难点若想使用Spring容器提供的强大功能,例如:Autowired,那么就需要让Spring容器将其管理。没整合之前,每次都需要通过SqlSessionFactory将其创建,一个两个还好,写多了整个人都麻了…所以我就想,能不能在service层直接注入呢?

2021-08-13 18:37:03 217

原创 MyBatis学习笔记

MyBatis 简介原是Apache的一个开源项目iBatis,2010年6月这个项目由Apache Software Foundation迁移到Google Code,随着开发团队转投Google Code旗下。iBatis3.x正式更名为MyBatis,代码于2013年11月迁移到GithubiBatis一词来源于“internet”和“abatis”的组合。是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)

2021-08-13 17:03:40 359

原创 idea创建普通Web项目lib目录无法输出,tomcat不报错踩坑记录

idea版本:2021.2tomcat版本:9.0.50项目结构创建一个普普通通的web项目,目录结构大概就是这样.├── .idea│ ├── artifacts│ ├── inspectionProfiles│ ├── libraries│ └── sonarlint│ └── issuestore├── conf├── lib├── out│ ├── artifacts│ │ └── test03_war_exploded│

2021-08-06 10:50:59 225

原创 SpringMVC中文乱码踩坑

问题使用SpringMVC在返回一个字符串时发生了中文乱码问题。produces属性无效@RequestMapping(value = "/nihao", produces = "text/plain;charset=UTF-8")@ResponseBodypublic String hello(HttpServletResponse response) throws UnsupportedEncodingException { User user = new User(); use

2021-08-01 21:30:22 223

原创 使用TypeScript装饰器简单模仿SpringBoot提供的@Configuration注解与@ConfigurationProperties注解

这两天才开始学习SpringBoot,遇到了两个很有意思的注解,打算用TypeScript模拟一下示例配置文件name: UpYoumap: { name: UpYou, age: 18}@ConfigurationProperties({ prefix: 'map' })@Configurationclass Preson { public age?: number = undefined; public name?: string = undefi.

2021-03-23 15:46:24 261

原创 初学MyBatis(踩坑)Error querying database.

最近在学习Mybatis,代码全部根据教程写好了,一运行结果报了一个错误,主要错误内容:Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long###

2021-01-29 01:26:08 1969 1

原创 Java Spring Cloud服务间调用

A服务是用户服务,B服务某个需求需要用户信息,而B服务无法连接用户的数据库(分库),需要让A服务查询用户信息。在B服务写一个接口去调用A服务的某个请求/** * 访问member服务 */@FeignClient("member")public interface RemoteMemberService { /** * 查询用户信息 * @param memberIdAES 加密memberID * @return */ @PostMapping("/member

2020-10-09 16:56:25 149

原创 uniapp使用axios以及封装错误重试解决方案

在uniapp中,使用axios进行请求时,uniapp无法使用axios的适配器,需要基于uni.request来定义适配器。安装完成axios后在项目utils目录下建一个axios文件夹文中根目录代表utils中的axios文件夹在根目录新建一个axios.js文件,在该文件中配置一个新的axiosimport axios from "axios";const service = axios.create({ withCredentials: true, crossDomain:

2020-10-09 16:32:43 4442

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除