开发技能点
文章平均质量分 66
ClearDream__
此人不懒,什么都没写
展开
-
SVN提示https证书验证失败问题
svn原创 2022-12-09 15:02:38 · 1748 阅读 · 1 评论 -
oracle实现数据的行列转换
【代码】oracle实现数据的行列转换。原创 2022-12-09 14:54:00 · 2913 阅读 · 0 评论 -
Quartz
quartz:石英钟的意思是一个当今市面上流行的高效的任务调用管理工具由OpenSymphony开源组织开发Symphony:交响乐是java编写的,我们使用费时需要导入依赖即可什么是任务调度所谓任务调用,就是执行某些具体动作的时间计划最简单的调度方法就是Timer但是Timer的调度功能过于单一,只能是指定时间的延时调用和周期运行而Quartz可以更详细的指定时间,进行计划调用 调度器:Scheduler任务:Job触发器:Trigger调度器来配置\计划什么时间触发什么任务简单来说就是调度器规定什么时间原创 2022-07-07 19:24:52 · 231 阅读 · 0 评论 -
Leaf的使用
leaf是叶子的意思我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统我们可以在Github网站上下载项目直接使用 上面的图片中是一个实际开发中常见的读写分离的数据库部署格式专门进行数据更新(写)的有两个数据库节点它们同时新增数据可能产生相同的id一旦生成相同的id,数据同步就会有问题会产生id冲突,甚至引发异常我们为了在这种多数据库节点的环境下能够产生唯一id可以使用Leaf来生成Leaf底层通过雪花算法生成不相同的id在Leaf的数据库中设置了每个模块申请id的数量一旦一个模块申请了这个原创 2022-07-07 19:18:37 · 893 阅读 · 0 评论 -
Spring Security(续)
Spring Security框架用于实现登录同时还可以将当前登录用户的权限信息保存我们在项目中要验证当前用户是否具备某个权限时可以再控制器方法代码前添加@PreAuthorize("[权限名称]")SpringSecurity在运行该方法之前进行核查如果不具备这个权限会返回403状态码我们在微服务的架构下,完成登录,和单机模式的登录是有很大区别的首先我们分析一下普通登录和微服务登录的区别 上面的图片,表示我们在微服务系统中登录时遇到的问题我们在用户模块中登录,只是将用户信息保存在用户模块的session中原创 2022-07-07 19:08:45 · 265 阅读 · 0 评论 -
分页查询PageHelper
所谓分页,就是查询结果数据较多时,采用按页显示的方法,而不是一次性全部显示分页的优点:我们可以使用sql语句中添加limit关键字的方法实现分页查询但是查询分页内容时,我们要自己计算相关的分页信息和参数分页逻辑无论什么业务都是类似的,所以有框架帮助我们高效实现分页功能PageHelper框架可以实现我们提供页码和每页条数,自动实现分页效果,收集分页信息PageHelper的分页原理就是在程序运行时,在sql语句尾部添加limit关键字,并按照分页信息向limit后追加分页数据要想使用,首先还是添加依赖我们在原创 2022-07-07 19:04:00 · 685 阅读 · 0 评论 -
Redis 强化
哨兵集群上次课我们说了哨兵如果哨兵服务器是一个节点,它误判master节点出现了故障,将master节点下线但是master其实是正常工作的,整体系统效率就会大打折扣我们可以将哨兵节点做成集群,由多个哨兵投票决定是否下线某一个节点 哨兵集群中,每个节点都会定时向master和slave发送ping请求如果ping请求有2个(集群的半数节点)以上的哨兵节点没有收到正常响应,会认为该节点下线分片集群当业务不断扩展,并发不断增高时有可能一个Master节点做写操作性能不足,称为了系统性能的瓶颈这时,就可以部署多原创 2022-07-07 18:54:43 · 251 阅读 · 0 评论 -
Spring Data简介
原生状态下,我们使用JDBC连接数据库,因为代码过于繁琐,所以改为使用Mybatis框架在ES的原生状态下,我们java代码需要使用socket访问ES,但是也是过于繁琐,我们可以使用SpringData框架简化Spring Data是Spring提供的一套连接各种第三方数据源的框架集我们需要使用的是其中连接ES的Spring Data Elasticseatrch官方网站:Spring Data 官网中列出了它可以操作的数据源列表每个列表中都包含一些使用的介绍要想实现Spring Boot操作ES添加依赖原创 2022-06-28 19:14:56 · 1039 阅读 · 0 评论 -
Elasticsearch概述
elastic:富有弹性的search:搜索在计算机开发界简称ES这个软件不是SpringCloud的组件,甚至其他语言都可以使用它是一个java开发的软件,所以启动需要java环境变量功能是从大量数据中根据指定的关键字搜索出匹配的结果这样的软件有一个名称全文搜索引擎使用它的方式是访问它提供的控制器方法,它开发了多种控制器方法访问不同方法实现对数据的增删改查ES也是将数据保存在硬盘上的java有一套名为Lucene的API是搜索引擎的核心支持,Elasticsearch在Lucene的基础上开发出了一个功能原创 2022-06-27 22:37:54 · 889 阅读 · 1 评论 -
SpringGateway 网关
早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎这些框架和Spring Cloud Alibaba的对应关系我们要知道Nacos对应Eureka 都是注册中心Dubbo对应ribbon+feign都是实现微服务间调用Sentinel对应Hystrix都是项目限流熔断降级组件Gateway对应zuul都是项目的网关Gateway不是阿里巴巴的而是Spring提供的"网关"网是网络,关是关口\关卡关口\关卡的意思就是"统一入口"网关:就是网络中的统一入口程序中的网关就是微服务项目提供的外界所原创 2022-06-26 11:56:40 · 774 阅读 · 0 评论 -
Sentinel 概述
Sentinel也是Spring Cloud Alibaba的组件Sentinel英文翻译"哨兵\门卫"随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。官网地址home下载地址Releases · alibaba/Sentinel · GitHub丰富的应用场景双11,秒杀,12306抢火车票完备的实时状态监控可以支持显示当前项目各个服务的运行和压力状态,分析出每台服务器处理的秒级别的数据广泛的开源生态很原创 2022-06-26 00:34:08 · 290 阅读 · 0 评论 -
Seata概述
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务也是Spring Cloud Alibaba提供的组件Seata官方文档Seata更多信息可以通过官方文档获取我们首先简单复习一下事务的概念我们再业务中,必须保证数据库操作的原子性,也就是当前业务的所有数据库操作要么都成功,要么都失败之前我们使用Spring声明式事务来解决本地的事务问题但是现在是微服务环境,一个业务可能涉及多个模块的数据库操作这种情况就需要专门的微服务状态下解决事务问题的"分布式事务"解决方原创 2022-06-26 00:25:39 · 423 阅读 · 0 评论 -
Dubbo负载均衡
在实际开发中,一个服务基本都是集群模式的,也就是多个功能相同的项目在运行,这样才能承受更高的并发这时一个请求到这个服务,就需要确定访问哪一个服务器Dubbo框架内部支持负载均衡算法,能够尽可能的让请求在相对空闲的服务器上运行我们要实现设置好负载均衡的策略算法,并设置好每个服务器的运行权重才能更好的实现负载均衡的效果Loadbalance:就是负载均衡的意思Dubbo内置4种负载均衡算法实际运行过程中,每个服务器性能不同在负载均衡时,都会有性能权重,这些策略算法都考虑权重问题 随机生成随机数在哪个范围内让哪个原创 2022-06-26 00:12:42 · 575 阅读 · 0 评论 -
Dubbo框架
RPC是Remote Procedure Call的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,互相调用方法\通信的解决方案RPC的概念主要定义了两部分内容1.序列化协议2.通信协议为了方便大家理解RPC,下面的图片帮助理解 上面图是老婆和老公在家的时,老婆让老公洗碗的调用流程但这个流程是本地的,我们再换成远程调用的图片 通信协议通信协议指的就是远程调用的通信方式再上面图片调用中,老婆使用手机信息的方法通知老公去洗碗实际上这个通知的方式可以有多种例如:写信,飞鸽传书,闪送等等序列化协原创 2022-06-25 22:57:38 · 182 阅读 · 0 评论 -
Nacos注册中心
Nacos是Spring Cloud Alibaba提供的一个软件这个软件主要具有注册中心和配置中心的功能微服务中所有项目都必须注册到注册中心才能成为微服务的一部分注册中心和企业中的人力资源管理部门有相似 我们要启动Nacos必须保证当前系统配置了java环境变量简单来说就是要环境变量中,有JAVA_HOME的配置,指向安装jdk的路径确定了支持java后,可以通过下面路径下载https://github.com/alibaba/nacos/releases/download/1.4.3/nacos-ser原创 2022-06-25 18:28:12 · 394 阅读 · 0 评论 -
Spring Cloud(Spring全家桶)
SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序的框架集框架集表示SpringCloud不是一个框架,而是很多框架的统称SpringCloud是为了搭建微服务架构的程序而出现的有人将SpringCloud称之为"Spring全家桶",广义上指代所有Spring的产品从内容提供者角度课程中大量使用alibaba的微服务组件从功能上分类...原创 2022-06-25 18:00:04 · 245 阅读 · 0 评论 -
微服务概述
微服务的概念是由Martin Fowler(马丁·福勒)在2014年提出的 微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。简单来说,微服务就是将一个大型项目的各个业务代码,拆分成多个互不干扰的小项目,而这些小项目专心完成自己的功能,而且可以调用别的小项目的方法,从而完成整体功能京东\淘宝这样的大型互联网应用程序,基本每个操原创 2022-06-25 17:56:39 · 1199 阅读 · 1 评论 -
Vant可靠的移动端组件库
Vant是一个轻量,可靠的移动端组件库,2017开源目前 Vant 官方提供了 [Vue 2 版本](https://vant-contrib.gitee.io/vant/v2)、[Vue 3 版本](https://vant-contrib.gitee.io/vant)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/3lang3/react-vant)和[支付宝小程序版本]原创 2022-06-25 15:56:03 · 2179 阅读 · 0 评论 -
Spring Security解决认证与授权的框架
Spring Security是用于解决认证与授权的框架。在根项目下创建新的子模块,最基础的依赖项包括与(为避免默认存在的测试类出错,应该保留测试的依赖项),完整的的为:调整完成后,即可启动项目,在启动的日志中,可以看到类似以下内容:Spring Security有默认登录的账号和密码(以上提示的值),密码是随机的,每次启动项目都会不同。Spring Security默认要求所有的请求都是必须先登录才允许的访问,可以使用默认的用户名和自动生成的随机密码来登录。在测试登录时,在浏览器访问当前主机的原创 2022-06-25 15:46:09 · 425 阅读 · 0 评论 -
Redis存储数据
Redis是一款基于内存的NoSQL数据存储服务,是非关系型的,是使用K-V结构进行存储的在基于Spring Boot的开发中,当需要在程序中访问Redis中的数据时,需要添加依赖项。要操作Redis中的数据,需要使用对象,则在的根包下的包中创建类,并在其中进行配置:接下来,在测试的根包下创建来测试访问Redis中的数据:最后,关于Key的使用,通常建议使用冒号区分多层次,类似URL的设计方式,例如: 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库。通常,原创 2022-06-25 15:24:33 · 3184 阅读 · 0 评论 -
Validation框架验证请求参数格式的基本有效性
关于Validation框架的基本使用:先在中添加依赖(如果已经添加,则不需要重复添加):在处理请求的方法的参数之前添加 / 注解:由于等类在模块中的,要在此类中添加等注解,则必须在中添加依赖:然后,的属性上添加约束(其它的约束等到测试通过之后再补充):在中添加对应“请求参数格式错误”的枚举值:在中添加新的处理异常的方法:...原创 2022-06-25 14:28:21 · 167 阅读 · 0 评论 -
java后端解决跨域问题
跨域是指 不同域名之间相互访问。跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。也就是如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。什么是同一个域?同一协议,同一ip,同一端口,三同中有一不同就产生了跨域。在的根包下包下创建类,实现接口,重写其中的方法,以解决跨域问题:...原创 2022-06-25 12:40:29 · 1047 阅读 · 0 评论 -
基于Spring JDBC的事务管理
事务:是一种能够保证同一个业务中多个写(增删改)操作要么全部成功,要么失败的机制!在业务方法上添加即可保证此方法是业务性(要么全部成功,要么全部失败)的。在Spring JDBC中,处理事务的机制大致是:所以,为了保证事务性,所有的写操作在执行之后,必须有某个判定为失败的标准,且判断定为失败后,必须抛出或其子孙类异常!当需要方法是事务性的,可以使用注解,此注解可以添加在:Spring JDBC是通过接口代理的方式进行事务管理,所以,只对接口中声明的方法有效!通常,应该将添加在接口中的抽象方法上(如果偷原创 2022-06-25 12:23:17 · 152 阅读 · 0 评论