自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (1)
  • 收藏
  • 关注

原创 java中批量插入数据优化问题

开发中遇到excel大量数据批量入库时候,逐条插入数据很慢导致卡顿问题。

2024-01-14 15:19:40 946 1

原创 SVN提示https证书验证失败问题

svn

2022-12-09 15:02:38 2299

原创 oracle实现数据的行列转换

【代码】oracle实现数据的行列转换。

2022-12-09 14:54:00 3196

原创 Window系统配置java环境变量

【代码】Window系统配置java环境变量。

2022-11-04 10:45:53 1564

原创 Quartz

quartz:石英钟的意思是一个当今市面上流行的高效的任务调用管理工具由OpenSymphony开源组织开发Symphony:交响乐是java编写的,我们使用费时需要导入依赖即可什么是任务调度所谓任务调用,就是执行某些具体动作的时间计划最简单的调度方法就是Timer但是Timer的调度功能过于单一,只能是指定时间的延时调用和周期运行而Quartz可以更详细的指定时间,进行计划调用 调度器:Scheduler任务:Job触发器:Trigger调度器来配置\计划什么时间触发什么任务简单来说就是调度器规定什么时间

2022-07-07 19:24:52 295

原创 Leaf的使用

leaf是叶子的意思我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统我们可以在Github网站上下载项目直接使用 上面的图片中是一个实际开发中常见的读写分离的数据库部署格式专门进行数据更新(写)的有两个数据库节点它们同时新增数据可能产生相同的id一旦生成相同的id,数据同步就会有问题会产生id冲突,甚至引发异常我们为了在这种多数据库节点的环境下能够产生唯一id可以使用Leaf来生成Leaf底层通过雪花算法生成不相同的id在Leaf的数据库中设置了每个模块申请id的数量一旦一个模块申请了这个

2022-07-07 19:18:37 1047

原创 Spring Security(续)

Spring Security框架用于实现登录同时还可以将当前登录用户的权限信息保存我们在项目中要验证当前用户是否具备某个权限时可以再控制器方法代码前添加@PreAuthorize("[权限名称]")SpringSecurity在运行该方法之前进行核查如果不具备这个权限会返回403状态码我们在微服务的架构下,完成登录,和单机模式的登录是有很大区别的首先我们分析一下普通登录和微服务登录的区别 上面的图片,表示我们在微服务系统中登录时遇到的问题我们在用户模块中登录,只是将用户信息保存在用户模块的session中

2022-07-07 19:08:45 320

原创 分页查询PageHelper

所谓分页,就是查询结果数据较多时,采用按页显示的方法,而不是一次性全部显示分页的优点:我们可以使用sql语句中添加limit关键字的方法实现分页查询但是查询分页内容时,我们要自己计算相关的分页信息和参数分页逻辑无论什么业务都是类似的,所以有框架帮助我们高效实现分页功能PageHelper框架可以实现我们提供页码和每页条数,自动实现分页效果,收集分页信息PageHelper的分页原理就是在程序运行时,在sql语句尾部添加limit关键字,并按照分页信息向limit后追加分页数据要想使用,首先还是添加依赖我们在

2022-07-07 19:04:00 822

原创 Redis 强化

哨兵集群上次课我们说了哨兵如果哨兵服务器是一个节点,它误判master节点出现了故障,将master节点下线但是master其实是正常工作的,整体系统效率就会大打折扣我们可以将哨兵节点做成集群,由多个哨兵投票决定是否下线某一个节点 哨兵集群中,每个节点都会定时向master和slave发送ping请求如果ping请求有2个(集群的半数节点)以上的哨兵节点没有收到正常响应,会认为该节点下线分片集群当业务不断扩展,并发不断增高时有可能一个Master节点做写操作性能不足,称为了系统性能的瓶颈这时,就可以部署多

2022-07-07 18:54:43 319

原创 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 1108

原创 Elasticsearch概述

elastic:富有弹性的search:搜索在计算机开发界简称ES这个软件不是SpringCloud的组件,甚至其他语言都可以使用它是一个java开发的软件,所以启动需要java环境变量功能是从大量数据中根据指定的关键字搜索出匹配的结果这样的软件有一个名称全文搜索引擎使用它的方式是访问它提供的控制器方法,它开发了多种控制器方法访问不同方法实现对数据的增删改查ES也是将数据保存在硬盘上的java有一套名为Lucene的API是搜索引擎的核心支持,Elasticsearch在Lucene的基础上开发出了一个功能

2022-06-27 22:37:54 1010 1

原创 SpringGateway 网关

早期(2020年前)奈非提供的微服务组件和框架受到了很多开发者的欢迎这些框架和Spring Cloud Alibaba的对应关系我们要知道Nacos对应Eureka 都是注册中心Dubbo对应ribbon+feign都是实现微服务间调用Sentinel对应Hystrix都是项目限流熔断降级组件Gateway对应zuul都是项目的网关Gateway不是阿里巴巴的而是Spring提供的"网关"网是网络,关是关口\关卡关口\关卡的意思就是"统一入口"网关:就是网络中的统一入口程序中的网关就是微服务项目提供的外界所

2022-06-26 11:56:40 859 1

原创 Sentinel 概述

Sentinel也是Spring Cloud Alibaba的组件Sentinel英文翻译"哨兵\门卫"随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。官网地址home下载地址Releases · alibaba/Sentinel · GitHub丰富的应用场景双11,秒杀,12306抢火车票完备的实时状态监控可以支持显示当前项目各个服务的运行和压力状态,分析出每台服务器处理的秒级别的数据广泛的开源生态很

2022-06-26 00:34:08 348

原创 Seata概述

Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务也是Spring Cloud Alibaba提供的组件Seata官方文档Seata更多信息可以通过官方文档获取我们首先简单复习一下事务的概念我们再业务中,必须保证数据库操作的原子性,也就是当前业务的所有数据库操作要么都成功,要么都失败之前我们使用Spring声明式事务来解决本地的事务问题但是现在是微服务环境,一个业务可能涉及多个模块的数据库操作这种情况就需要专门的微服务状态下解决事务问题的"分布式事务"解决方

2022-06-26 00:25:39 510

原创 Dubbo负载均衡

在实际开发中,一个服务基本都是集群模式的,也就是多个功能相同的项目在运行,这样才能承受更高的并发这时一个请求到这个服务,就需要确定访问哪一个服务器Dubbo框架内部支持负载均衡算法,能够尽可能的让请求在相对空闲的服务器上运行我们要实现设置好负载均衡的策略算法,并设置好每个服务器的运行权重才能更好的实现负载均衡的效果Loadbalance:就是负载均衡的意思Dubbo内置4种负载均衡算法实际运行过程中,每个服务器性能不同在负载均衡时,都会有性能权重,这些策略算法都考虑权重问题 随机生成随机数在哪个范围内让哪个

2022-06-26 00:12:42 662

原创 Dubbo框架

RPC是Remote Procedure Call的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,互相调用方法\通信的解决方案RPC的概念主要定义了两部分内容1.序列化协议2.通信协议为了方便大家理解RPC,下面的图片帮助理解 上面图是老婆和老公在家的时,老婆让老公洗碗的调用流程但这个流程是本地的,我们再换成远程调用的图片 通信协议通信协议指的就是远程调用的通信方式再上面图片调用中,老婆使用手机信息的方法通知老公去洗碗实际上这个通知的方式可以有多种例如:写信,飞鸽传书,闪送等等序列化协

2022-06-25 22:57:38 232

原创 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 461

原创 Spring Cloud(Spring全家桶)

SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序的框架集框架集表示SpringCloud不是一个框架,而是很多框架的统称SpringCloud是为了搭建微服务架构的程序而出现的有人将SpringCloud称之为"Spring全家桶",广义上指代所有Spring的产品从内容提供者角度课程中大量使用alibaba的微服务组件从功能上分类...

2022-06-25 18:00:04 310

原创 微服务概述

微服务的概念是由Martin Fowler(马丁·福勒)在2014年提出的 微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。简单来说,微服务就是将一个大型项目的各个业务代码,拆分成多个互不干扰的小项目,而这些小项目专心完成自己的功能,而且可以调用别的小项目的方法,从而完成整体功能京东\淘宝这样的大型互联网应用程序,基本每个操

2022-06-25 17:56:39 1292 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 2346

原创 Spring Security解决认证与授权的框架

Spring Security是用于解决认证与授权的框架。在根项目下创建新的子模块,最基础的依赖项包括与(为避免默认存在的测试类出错,应该保留测试的依赖项),完整的的为:调整完成后,即可启动项目,在启动的日志中,可以看到类似以下内容:Spring Security有默认登录的账号和密码(以上提示的值),密码是随机的,每次启动项目都会不同。Spring Security默认要求所有的请求都是必须先登录才允许的访问,可以使用默认的用户名和自动生成的随机密码来登录。在测试登录时,在浏览器访问当前主机的

2022-06-25 15:46:09 513

原创 Redis存储数据

Redis是一款基于内存的NoSQL数据存储服务,是非关系型的,是使用K-V结构进行存储的在基于Spring Boot的开发中,当需要在程序中访问Redis中的数据时,需要添加依赖项。要操作Redis中的数据,需要使用对象,则在的根包下的包中创建类,并在其中进行配置:接下来,在测试的根包下创建来测试访问Redis中的数据:最后,关于Key的使用,通常建议使用冒号区分多层次,类似URL的设计方式,例如: 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库。通常,

2022-06-25 15:24:33 3409

原创 Validation框架验证请求参数格式的基本有效性

关于Validation框架的基本使用:先在中添加依赖(如果已经添加,则不需要重复添加):在处理请求的方法的参数之前添加 / 注解:由于等类在模块中的,要在此类中添加等注解,则必须在中添加依赖:然后,的属性上添加约束(其它的约束等到测试通过之后再补充):在中添加对应“请求参数格式错误”的枚举值:在中添加新的处理异常的方法:...

2022-06-25 14:28:21 203

原创 java后端解决跨域问题

跨域是指 不同域名之间相互访问。跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。也就是如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。什么是同一个域?同一协议,同一ip,同一端口,三同中有一不同就产生了跨域。在的根包下包下创建类,实现接口,重写其中的方法,以解决跨域问题:...

2022-06-25 12:40:29 1090

原创 基于Spring JDBC的事务管理

事务:是一种能够保证同一个业务中多个写(增删改)操作要么全部成功,要么失败的机制!在业务方法上添加即可保证此方法是业务性(要么全部成功,要么全部失败)的。在Spring JDBC中,处理事务的机制大致是:所以,为了保证事务性,所有的写操作在执行之后,必须有某个判定为失败的标准,且判断定为失败后,必须抛出或其子孙类异常!当需要方法是事务性的,可以使用注解,此注解可以添加在:Spring JDBC是通过接口代理的方式进行事务管理,所以,只对接口中声明的方法有效!通常,应该将添加在接口中的抽象方法上(如果偷

2022-06-25 12:23:17 185

原创 http 常见的状态码有哪些

200 OK //客户端请求成功301 Moved Permanently(永久移除),请求的 URL 已移走。Response 中应该包含一个 Location URL, 说明资源现在所处的位置302 found 重定向400 Bad Request //客户端请求有语法错误,不能被服务器所理解401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用403 Forbidden //服务器收到请求,但是拒绝提供服务404 Not Found /

2022-06-07 19:59:26 126

原创 MySQL性能优化

(1)尽量选择较小的列(2)将where中用的比较频繁的字段建立索引(3)select子句中避免使用‘*’(4)避免在索引列上使用计算、not in 和等操作(5)当只需要一行数据的时候使用limit 1(6)保证单表数据不超过200W,适时分割表。针对查询较慢的语句,可以使用explain 来分析该语句具体的执行情况。(7)避免改变索引列的类型。(8)选择最有效的表名顺序,from字句中写在最后的表是基础表,将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。(9)..

2022-06-07 19:58:29 116

原创 为什么要用 ORM? 和 JDBC 有何不一样

orm 是一种思想,就是把 object 转变成数据库中的记录,或者把数据库中的记录转变成 objecdt,我们可以用 jdbc 来实现这种思想,其实,如果我们的项目是严格按照 oop 方 式编写的话,我们的 jdbc 程序不管是有意还是无意,就已经在实现 orm 的工作了。 现在有许多 orm 工具,它们底层调用 jdbc 来实现了 orm 工作,我们直接使用这些工具, 就省去了直接使用 jdbc 的繁琐细节,提高了开发效率,现在用的较多的 orm 工具是 hibernate。也听说一些其他 orm 工具

2022-06-07 19:56:54 172

原创 SpringBoot配置文件有哪些?怎么实现多环境配置?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。bootstrap配置文件的特性:bootstrap 配置文件有以下几个应用场景:提供多套配置文件,如:applcation.propertiesapplication-dev.propertiesapplication-test.propertiesapplication-prod.properties运

2022-06-07 19:55:58 579

原创 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

2022-06-07 19:43:51 1061

原创 Mybatis 如何完成MySQL的批量操作,举例说明

MyBatis完成MySQL的批量操作主要是通过标签来拼装相应的SQL语句. 例如:

2022-06-07 19:41:45 458

原创 Spring bean 的生命周期、注入方式和作用域

Bean的生命周期(1)默认情况下,IOC容器中bean的生命周期分为五个阶段:(2)当加入了Bean的后置处理器后,IOC容器中bean的生命周期分为七个阶段:注入方式:通过 setter 方法注入通过构造方法注入Bean的作用域总共有四种作用域:...

2022-06-07 19:38:32 401

原创 Spring中常用的设计模式

(1)代理模式——spring 中两种代理方式,若目标对象实现了若干接口,spring 使用jdk 的java.lang.reflect.Proxy类代理。若目标兑现没有实现任何接口,spring 使用 CGLIB 库生成目标类的子类。(2)单例模式——在 spring 的配置文件中设置 bean 默认为单例模式。(3)模板方式模式——用来解决代码重复的问题。比如:RestTemplate、JmsTemplate、JpaTemplate(4)工厂模式——在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑

2022-06-07 19:35:00 974

原创 谈谈怎么理解SpringBoot框架

SpringBoot框架

2022-06-06 19:47:31 217

原创 MyBatis如何获取自动生成的(主)键值?

MyBatis如何获取自动生成的(主)键值?

2022-06-06 19:44:00 1207 1

原创 谈谈你对Spring 的理解

spring框架

2022-06-06 19:41:56 3022

原创 MyBatis中 #{}和${}的区别是什么?

MyBatis中 #{}和${}的区别是什么

2022-06-06 19:40:29 120

原创 简述Mybatis的动态SQL,列出常用的6个标签及作用

动态SQL

2022-06-06 19:38:33 1212

原创 简述Springmvc中如何返回JSON数据

JSON

2022-06-06 19:36:04 410

原创 Spring 和 Springmvc中常用的5个注解,并解释含义

注解

2022-06-06 19:34:04 1446

百鸡百元.java

百鸡百元.java

2022-03-05

空空如也

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

TA关注的人

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