自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式事务Seata的简单使用

Java中事务一般使用的是基于数据库的事务管理(@Transactional),在分布式或者微服务的框架下此种就可能不适用,因为每个独立的服务可能有独立的数据库,此时默认的@Transactional事务管理就不满足需求了。此时Sata服务就会注册到注册中心Nacos上,从这里可以看出Sata本身就是一个微服务,能提供事务管理功能。那么如何管理分布式框架下面的事务管理呢,这里引入了第三方的工具Sata,事务的特性:原子性、一致性、独立性、持久性。3、配置Sata事务类型。5、启动Sata服务。

2023-10-14 15:12:46 244

原创 SpringCloud网关服务

Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。

2023-09-20 14:56:54 113

原创 远程调用工具Feign

FeignClient("userservice"):指定当前接口需要访问的服务,可以从注册中心中拉取对应服务@GetMapping("/user/{id}"):指定当前方法访问的路径PS:此方法类似与Controller层代码,但实际不是。

2023-09-20 14:50:51 111

原创 Nacos介绍和使用

介绍:Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。功能:1)支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。2): Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。3)

2023-09-20 14:46:05 314

原创 Ribbon负载均衡+RestTemplate调用

Ribbon是Sping Cloud的一个组件,Spring Cloud Ribbon是一个负载均衡的解决方案,Ribbon是Netflix发布的负载均衡器,Spring对其进行了集成,Spring Cloud Ribbon是基于Netflix Ribbon实现的,是一个用于对HTTP请求进行控制的负载均衡客户端。Spring Cloud Ribbon也是要结合Eureka Server来使用的,因为也要在注册中心进行注册。

2023-09-20 14:39:25 187 1

原创 Eureka注册中心介绍

注册发现中心Eureka,意为“发现了”。它是Netflix公司开发的一款基于REST服务治理框架,主要用于构建分布式系统中的服务注册和发现功能。它和Netflix公司的其他服务组件(负载均衡,熔断器,网关等)被SpringCloud社区整合为SpringCloudNetflix模块。

2023-09-20 14:29:59 336 1

原创 微服务架构解析

在学习微服务之前,需要先了解一下微服务的概念。微服务并不是一种技术,而是一种架构层的优化,在微服务面试之前,很多的应用都是采用单体的模式进行打包的,也就是程序的所有功能全部打成一个jar包或者war包,这样的程序耦合度太高,多人协作开发的过程会出现各种代码冲突的问题,在运维层面也会因为一个小修改就需要整体重启,运维效果就不是很好,因此引入了微服务的架构。

2023-09-20 14:27:18 57 1

原创 SpringBoot特点解析(IOC\AOP\DI)

3.1、IOC(控制反转):是由SpringBoot提供的一个对象容器,也叫bean容器,作用是通过特定注解,IOC容器会在程序启动的时候去扫描启动类同级及其子包下面的所有类,对有对应注解的类或接口,会创建当前类或接口实现类的对象交由IOC容器管理,后续代码中需要使用该对象的时候可以通过DI(依赖注入)直接在目标位置注入容器中的对象,优化了开发人员之前频繁创建对象造成的资源浪费。实现自动配置:核心注解是@Import注解,这个注解可以导入类,接口,配置类,ImportSelector的实现类。

2023-09-20 09:38:00 210 1

原创 SpringTask使用

是由Spring框架提供的一款任务调度工具,可以按照约定的时间自动执行某段代码。

2023-09-13 16:47:30 100

原创 WebSocket使用

它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。服务器长期维护长连接需要一定的成本各个浏览器支持程度不一WebSocket 是长连接,受网络限制比较大,需要处理好重连。结论:WebSocket并不能完全取代HTTP,它只适合在特定的场景下使用。证券信息的实时更新、网站视频弹幕、体育实况信息更新、网页聊天等。4、定义配置类注册WebSocket的服务端组件。5、 定义定时任务类,定时向客户端推送数据。3、定义websocket组件。

2023-09-13 16:45:02 107

原创 SpringSecurity登录验证和鉴权粗解

SpringSecurity是Spring家族中的一个安全管理框架,它的底层是一系列的拦截器和拦截规则,相当于一个拦截器链。

2023-09-13 16:29:50 1093

原创 对接微信登录

3、解析code并生成openId写入token,并返回给前端。获取 临时登录凭证code ,并回传到开发者服务器。登录小程序后台:获取注册好的key和secret。1、注册微信小程序,获取key和secret。

2023-09-05 16:46:24 301

原创 对接微信支付

从上述流程分析,对接微信支付,后端有两个关键接口,第一是获取微信平台支付标识接口,第二是由微信平台传递支付状态的回调接口。5、前端用户确认支付(输入密码等操作),直接调用微信平台接口进行支付确认。4、后端对支付交易标识进行签名(非必须,看项目)并回传给前端。6、微信平台返回支付状态给前端和后端。2、后端开始调用微信支付接口。3、微信平台返回支付交易标识。1、用户端申请微信支付。

2023-09-05 16:43:54 273

原创 数据对接技术HttpClient

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。1、创建HttpClient对象。3、发送请求,接受响应结果。适用与第三方系统进行对接。

2023-09-05 16:41:52 39

原创 Java中SpringCache缓存技术

缓存技术就是为了减少代码对数据库的频繁操作,提高代码运行效率的一种技术,核心思想就是将一些频繁读取且很少修改的数据存放到内存中(Redis)存储起来,用户频繁查看的时候即可直接从内存中调用,无需查询数据库。key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法。key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法。key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法。作用: 将方法返回值,放入缓存。

2023-09-05 15:43:12 208

原创 Redis的使用

Redis在Java中也有对应的工具包,常用的:Jedis、Lettuce、Spring Data Redis这几种,其中Spring Data Redis是对前两种进行整合封装,也是比较推荐使用的。redis是基于内存的一款K-V的数据库,由于是基于内存的,所有redis的读取速度十分快,常用于系统中的某些状态,排行榜,短信验证码,分布式锁等一些数据的存储,用于提高系统运行效率。Redis有序集合是string类型元素的集合,且不允许有重复成员。三、Redis在Java中的使用。一、redis的概念。

2023-09-05 15:41:03 28

原创 分页插件、文件上传、参数配置化和引用配置参数

1、在pom.xml引入依赖。

2023-08-18 14:43:11 216

原创 Mybatis学习部分总结

在我们执行某些语句例如插入一条数据,此时我们是不知道本条数据在数据库中的实际ID值的,那么如果我们需要获取我们插入的这条数据的实际ID值,进行下一步操作的时候,怎么办,Mybatis提供了一个@Options注解,在对应方法上添加一个@Options注解并在注解中指定属性useGeneratedKeys=true和keyProperty="实体类属性名",这样本方法执行完成后会将对象数据的ID值自动返回给对象的ID属性中。<sql>和<include>,这两个标签是用来提取重复的sql语句并进行引用的。

2023-08-18 14:34:53 35 1

原创 会话、令牌、加密、过滤器、拦截器及全局异常

1、概念:在java中会话技术就是浏览器和服务器之间的连接,一次连接代表一次会话2、会话跟踪技术:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。为什么要引入会话跟踪技术:在应用系统服务端,每时每刻都会接收请求或者会话,那么服务器是如何不会混淆这些请求呢,如何判断这些来自哪个客户端,这时候就需要用到会话跟踪技术3、会话跟踪技术的几种方式Cookie:(客户端会话跟踪技术)

2023-08-18 14:29:52 229 1

原创 单元测试、反射、注解、动态代理

3、Class对象或Method对象.getDeclaredAnnotation(注解名.class),获得注解对象。定义(作用):通过对象或类名获得相应字节码文件(.Class),并通过解析可获得该类中的所有属性、方法、构造。@BeforeClass:在所有测试方法之前只执行一次-----------》对应静态方法。@AfterClass:在所有测试方法之后只执行一次-----------》对应静态方法。作用:在不改变对象原有功能及层级结构的情况下对该对象的功能进行增强。

2023-07-28 20:07:18 68 1

原创 线程使用说明(Thread):

TimeUnit.SECONDS,//时间单位(秒) new ArrayBlockingQueue<>(4), //任务阻塞队列,没有来得及执行的任务在,任务队列中等待 Executors.defaultThreadFactory(), //用于创建线程的工厂对象 new ThreadPoolExecutor.CallerRunsPolicy() //拒绝策略 );

2023-07-22 14:24:56 33

原创 JDK8单列集合使用

另一个是调用了元素的equals方法,用来比较新添加的元素和集合中已有的元素是否相同。只有新添加元素的hashCode值和集合中以后元素的hashCode值相同、新添加的元素调用equals方法和集合中已有元素比较结果为true, 才认为元素重复。3.在持续添加过程中,添加的数量超出现有数组的长度,底层会自动创建一个长度为原数组长度1.5倍的新数组,先将原数组数据转存过来,再添加新数据;3、判断索引位是否存在元素,若无,则直接存入数组,若有则需equals比较,相同则不存(不重复原理),不同则挂入。

2023-07-17 15:59:26 104

原创 正则表达式书写规范及作用

正则表达式的作用1:用来校验字符串数据是否合法正则表达式的作用2:可以从一段文本中查找满足要求的内容现在,我们就以QQ号码为例,来体验一下正则表达式的用法。注意:现在仅仅只是体验而已,我们还没有讲正则表达式的具体写法。不使用正则表达式,校验QQ号码代码是这样的用正则表达式代码是这样的。

2023-06-29 13:55:17 138

原创 Lambda表达式的应用

好的,我们现在已经知道Lamdba表达式可以简化基于函数式接口的匿名内部类的书写。有了以上的Swimming接口之后,接下来才能再演示,使用Lambda表达式,简化匿名内部类书写。像这样的接口,我们称之为函数式接口,只有基于函数式接口的匿名内部类才能被Lambda表达式简化。

2023-06-29 09:52:01 66 2

空空如也

空空如也

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

TA关注的人

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