自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试(一)

面试

2022-07-13 17:39:39 285 1

原创 Lock-ReentrantLock详解

Lock-ReentrantLock详解原理获取锁释放锁ReentrantLock 公平锁与非公平锁代码重入锁与不可重入锁概念synchronized和ReentrantLock都是可重入锁原理锁获取:无条件、可轮询、可中断锁释放:加锁和解锁都是显式的获取锁CAS操作抢占锁,抢占成功则修改锁的状态为1,将线程信息记录到锁当中,返回state=1抢占不成功时,会再次尝试获取锁资源,如果获取成功直接返回,获取不成功,新建一个节点插入到当前AQS队列的尾部,节点表示唤醒AQS队列中的节点再次尝

2022-05-21 14:05:12 245

原创 ThreadLocal

ThreadLocal原理API场景使用ThreadLocal思路代码原理ThreadLocal只有当前线程可以访问,每个线程都有自己的变量副本。线程消亡他也消亡,他是变量对象,不是线程。其中存储的内容只有当前线程能访问的APIvoid set(T value)设置当前线程的threadlocal的值T get()该方法返回当前线程threadlocal的值void removed()将当前线程threadlocal的值删除。目的是为了减少内存的占用。需要指出的是,当线程结束后,

2022-05-15 13:49:26 1236

原创 MQ常见面试题

MQ常见面试题面试题为什么要使用MQ在项目中使用MQ实现了什么功能MQ如何确保消息发送和消息接收如何防止消息丢失如何保证消息不被重复消费(幂等性)如何解决消息堆积问题MQ中的死信队列、延时队列结语面试题为什么要使用MQ异步异步是在程序中就是在相同的时间做不同的事情,只在乎过程,不在意结果,与线程类似。在上图中,在同步更新库存表时采用将其丢进消息中去,由MQ去给相应的商品微服务更新库存。解耦相应的两个程序互不影响。如上图,加入了MQ之后,订单微服务与商品微服务相互不影响。假设在下单过程中,商

2022-05-04 13:57:40 1233

原创 消息队列-RabbitMQ

消息队列-RabbitMQ什么是消息队列安装安装Erlang,并配置环境变量下载rabbitMQ集成SpringBoot配置依赖代码实现创建交换机、队列及其绑定发送消息消费消息什么是消息队列消息队列在当今的Java生态中是一个十分重要的一环,是一种中间件,用于解决Java系统中复杂的一环。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。这也充分体现了和后台线程是一样的,只关注于

2022-04-30 14:58:41 1365

原创 JAVA对接发送SMS短信服务

JAVA对接发送短信服务短信服务申请短信服务申请网页进入阿里云页面,搜索“短信”,进入以下页面进行购买即可。再购买完成后进入“控制台”查看具体购买的信息,有以下信息代表购买成功了。...

2022-04-17 14:14:12 1267 1

原创 线程池--异步编排

线程池--异步编排线程池--异步编排为什么要使用线程池线程池的创建异步为什么要使用异步编程CompletableFuture具体使用方式线程池配置代码具体使用结语线程池–异步编排为什么要使用线程池线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用,可以最大限度减少线程的重复创建与销毁,有效预防OOM异常。可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。线程池的创建public ThreadPoolExecutor(int

2022-04-16 12:29:48 538

原创 Redis基础及其分布式锁

Redis基础及其分布式锁Redis基础Redis整合springBoot配置应用代码示例缓存失效缓存穿透缓存雪崩缓存击穿分布式锁Redis基础redis是一个分布式的缓存技术,采用key-value对数据进行存储,它的数据类型主要分为5种:StringHashListSetZSet在日常开发中,redis是十分重要的,是一种面向NoSql的存储结构,也可用作快存快取的缓存场景。Redis整合springBoot配置引入依赖<dependency> &lt

2021-10-07 14:41:37 114

原创 Java性能压测工具及其调优

Java性能压测工具及其调优JMeter工具使用JVisualVM使用使用简介在日常的开发中,Java的性能显得尤为重要,一个程序的好坏主要就是性能来决定的。JMeter工具JMeter主要就是用于对Java 程序进行压力测试的一种有有力工具。JMeter工具下载:https://jmeter.apache.org/使用JMeter下载还不必做过多的配置吗,直接解压进入bin文件,点击jmeter批处理文件就可以。参数配置进入后进行配置测试计划以及分配线程组,进行压测的参数配置。

2021-10-06 17:58:48 7041 1

原创 SpringCloud学习六(OSS阿里云存储搭建)

OSS阿里云存储搭建阿里云对象存储使用代码上传配置文件上传在传统的文件上传的中,仅仅是将文件上本地中,这样是十分耗费内存以及性能的,所以,这里采用的是上传到分布式的服务器中,我们选择上传文件到阿里云。阿里云对象存储使用代码上传使用代码上传详见阿里云的官方文档 https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.948.abfa26fdn25Wsn在maven环境中引入依赖<dependency

2021-07-18 20:17:31 423

原创 SpringCloud学习(五)

SpringCloud学习(五)什么是Hystrix雪崩效应什么是Hystrix在分布式的微服务调用过程中,难免会出现服务之中的某个服务失败而造成线程阻塞问题,如果此刻有大量的请求涌入,就会出现多条线程阻塞等待。从而造成服务的瘫痪。这是因为服务之间的通信性依旧依赖性,这种故障就会传播,从而对整个微服务造成严重的后果,这也就是服务的雪崩效应Hystrix是一个库,可以添加等待时间容限以及容错逻辑来控制分布式服务之间的交互,Hystrix通过隔离服务之间的交互。雪崩效应...

2021-06-16 21:08:03 80

原创 SpringCloud学习(四)

SpringCloud学习(四)什么是FeginFegin解决了什么问题入门案例在前一节中,我们学习了负载均衡的相关知识,本节将学习服务之间声明式调用Fegin的使用,相比于前面学到的调用服务减少了很多冗余繁琐的代码。什么是FeginFegin是Spring Cloud Netflix组件中的一个轻量级的RESTful的HTTP服务客户端,封装了Ribbon的RestTemplate,实现了WebService的面向接口编程。同时Spring Cloud Alibaba的Nacos(在以后的学习中会

2021-06-15 21:46:18 92

原创 SpringCloud学习(三)

SpringCloud学习(三)什么是Ribbon入门案例搭建什么是RibbonRibbon是一个基于HTTP以及TCP的客户端负载工具,它是基于Netflix Ribbon实现的。Ribbon默认有很多种负载均衡算法,Ribbon提供了一套微服务的负载均衡解决方案入门案例搭建Ribbon对于集群的服务采用的负载均衡策略是轮询。在上一节的基础上再搭建一个Provider工程,其内容和上一个provider工程i一样,主要是模拟消费者调用这两个提供者服务所应用的负载均衡。项目结构消费

2021-06-09 21:50:57 59

原创 SpringCloud学习(二)

SpringCloud学习(二)Eureka的提供者与消费者Eureka提供者工程搭建Eureka消费者工程搭建Eureka的提供者与消费者在上一节中我们了解到了Eureka的流程结构,其中有一个很重要的就是服务的提供者以及消费者。在微服务的项目工程中新建两个模块,项目结构如下图所示:Eureka提供者工程搭建在这个项目中,主要就是编写相关的接口将其暴露出去,供其他消费者服务进行消费调用。application.yml因为配置了两个服务注册中心,所以在这个配置中的服务url都是指向两个集群

2021-06-06 22:33:34 156 3

原创 SpringCloud微服务学习(一)

SpringCloud学习(一)前言微服务介绍微服务的设计原则SpringCloud概念常用组件Eureka注册中心什么是Eureka前言时间如白驹过隙,转眼间2021已经快过去一半了,这半年来,自己也经历了很多的事,依靠父母买了人生中的第一套房,与女朋友的关系也越来越好,已经带她见了父母…然而工作却没有半点起色,自己的技术依然停留在去年的水平,在这一年中没有一点提升,但这也是自己的选择吧。为了跳出这种泥潭,自己要做出改变了。微服务介绍在我们开发的项目中,大部分都是单体的项目,我所在的公司很少涉及到

2021-06-06 10:18:15 179 3

原创 Java POI 对Excel合并单元格的数据处理

Java POI 对Excel合并单元格的数据处理最近在项目开发过程中,有个一个导入Excel文件处理合并单元格数据的需求,就自己在网上找了一个模板,自己进行二次开发来开发需求。Excel工具类public class ExcelUtil { /** * 读取excel数据 * */ public ArrayList<Map<String, String>> readExcelToObj(InputStream inputStre

2021-05-12 17:39:57 1175

原创 Lambda表达式--filter函数的用法

目录Lambda表达式学习filter函数的用法Lambda表达式学习filter函数的用法最近在工作中有这么一个需求,就是将List集合的数据进行筛选处理再将其转变为List集合的数据类型,在这里将用到的是filter函数对其进行筛选,它的作用就相当于原生态的Java中的if语句,在里面进行数据的判断,处理完后再用collect(Collectors.toList())转化为List集合,仅一行代码就可以实现对数据的处理,如果放在原生态的Java语言中,要对List集合进行循环才能进行处理。下面是代

2021-03-30 08:37:22 3321

原创 Java Down SAP数据的整合

Java Down SAP数据的整合SAP是一个面向数据库的一个接口协议,将所需要的数据类型暴露出来供开发者进行调用的一种协议。Maven下引入Jar包 <dependency> <groupId>org.hibersap</groupId> <artifactId>sapjco3</artifactId> <version>3.0</version> <scope

2021-03-04 14:48:59 151 1

原创 WebService学习

WebService学习什么是WebServiceWebService是一种跨编程语言、跨操作系统平台的远程调用技术。它将接口调用在外层,所有数据都能看到,但是调用时要符合一定的开发规范。远程调用技术远程调用是将一台操作系统的程序A调用另一台操作系统的程序B,将自己的系统的服务以WebService的的形式暴露出去,第三方的程序就可以直接调用这些服务功能。WebService原理XML、SOAP以及WSDL是构成WebService的三大技术...

2021-01-13 16:34:27 203

原创 POI进行Excel的合并单元格数据处理

POI进行Excel的合并单元格数据处理近日接到一个要处理合并Excel单元格的上料表的需求,就到网上找了一些模板,发现有的技术大牛还是挺厉害的,对他们致以敬意。合并单元格工具类在这个类中将传入的文件转化成流对象,再对其进行具体的数据处理public class ExcelUtilsMerge { public static Map<String, Object> readFileContentToEntity(InputStream inputStream) {

2021-01-05 16:51:59 1195

原创 Java--调用特定接口进行数据的返回

Java–调用特定接口进行数据的返回最近有一个需求需要调用特定的接口进行数据的返回处理,然后我查看了以前写的代码有类似的功能需求,就直接拿来用了。了解RestTemplate类RestTemplate是Spring开始支持的HTTP请求工具,提供了常见的Resful接口的常用解决方案。设定参数以及发送请求这是我开发项目中的代码,我直接把它贴在这里。对于要调用的接口需要设定参数以及余姚发送什么类型的请求 @Autowired RestTemplate restTemp

2020-12-23 14:41:01 814

原创 Java--依照PDF模板进行数据的填充并输出

Java–依照PDF模板进行数据的填充并输出今天因为有一个逻辑问题迟迟没有定下来,老板去了学习,所以闲着也是闲着,就抽空学习研究了下用Java输出PDF文件的技术。引入相应的Jar包这是导出pdf文件必备的jar包,我们将其在pom文件中引用 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</ar

2020-12-15 16:05:06 1872 1

原创 任务调度--定期清理服务器文件

任务调度–定期清理服务器文件最近在开发过程中,偶然看到了某位大佬撰写的一个JOB,获益良多,特此记录。1.新建任务在首先在任务调度平台中新建一个任务Jobhandler,因为涉及到服务器的定时清理,首先要想到的是该任务多久执行一次,而后mlb...

2020-12-14 18:09:16 421

原创 xxl-job任务调度平台发送报警邮件

xxl-job任务调度平台发送报警邮件前言前几天接到了一个需求,是要在xxl-job(这个项目在网上很常见,是xuexueli大佬开源的~)项目里添加一个Job,定时发送邮件预警。因为办公室的前辈都写好了现成的,我直接照猫画虎就行了。项目开发新建Java项目在xxl-job里需要在jobhandle里新建一个Java项目,里面的@JobHandle相当于框架中Controller层的标识,还要加上@Component注解将其注入到Spring容器中。在xxl-job项目中的每个项目执行器都要继承

2020-11-16 16:30:47 3160

原创 Redis在Liunx服务器的安装以及启动

Redis在Liunx服务器的安装以及启动近几天由于开发需求没有很紧,就学点额外的技术来对自己进行充电,今天独自在服务器上搭建了Redis。安装解压安装包//利用这条命令进行解压tar -zxvf xxxx.tar.gz切换到解压到的目录cd redis-5.0.9///利用make命令进行对redis文件进行编译make install当出现了一系列的INSTALL的字段后就代表编译完成。部署由于redis的文件夹不在同一管理的文件夹下,则需要把它移动到指定的文件夹下。

2020-10-26 18:36:15 115

原创 Lambda表达式中将List中对象的某个对象的属性转化为List及foreach的使用

Lambda表达式中将List中对象的某个对象的属性转化为List今天在开发中遇到了一个需求,需要将返回值的某个属性单独捞出来返回成List对象,再进行判断。1、lambda的foreach用法://将panelSnList的进行for循环,参数为panelSnpanelSnList.stream().forEach(panelSn -> { //里面对panelSn的具体需求 });2、单独将List的某个属性转化为List,先将List对象转化为流

2020-10-22 14:56:50 10498 2

原创 SSM:总结

SSM:总结经过了此次小整合的操作我们基本了解了用SSM框架去对数据的增删改查。基本的流程经过了此次小整合的操作我们基本了解了用SSM框架去对数据的增删改查。基本的流程1、项目有Maven依赖管理和构建,将其打包成war包,部署到服务器将其运行。2、分为前端和后台两个部分,前端的页面UI界面用bootstrap和jsp构成,后台则由SSM框架来搭建和编写,前后端交互部分则由ajax俩发送...

2019-04-06 10:20:13 2243

原创 SSM:十一、CRUD的删除员工功能

SSM:十一、CRUD的删除员工功能单一删除服务后端的control层的service层的操作在前端进行发送ajax请求批量删除在后端对数据的的解析和发送请求前端页面的全选及全不选的jQuery操作发送的ajax请求的具体操作:具体的实现结果:思路:1、单一删除:①在服务端发送/emp/{id}请求,发送的请求的类型为DELETE,将id的参数类型为依据路径来查找。②发送ajax请求,对数据进...

2019-04-02 10:56:17 279

原创 SSM:十、CRUD的修改员工功能

SSM:八、CRUD的修改功能在JSP文件中增加员工修改的模态框在服务器后端得到依据员工id得到员工的信息以及保存员工的具体操作。得到员工的发送的ajax方法发送ajax将数据进行保存具体的运行结果:思路:1、先得到员工的id,在服务器端发送/get/{id}请求,请求的方式为GET,在前端发送ajax请求得到服务器端传来的数据,依据empId将员工的数据取出,在模态框中加以显示。2、在对在模...

2019-04-02 10:26:27 314

原创 SSM:九、信息校验:jQuery前端校验、ajax用户名重复校验、后端校验

SSM:九、信息校验:jQuery前端校验、ajax用户名重复校验、后端校验jQuery前端校验ajax用户名重复校验后端校验jQuery前端校验用正则表达式对前端输入信息的校验。包括用户名信息和email信息。具体的实现就是利用正则表达式判断所输入的信息是否符合要求。而后添加样式。 //校验员工姓名和邮箱的格式是否正确 function invalid_fo...

2019-03-31 16:05:50 1771

原创 SSM:八、CRUD的增加员工功能

SSM:八、CRUD的增加员工功能在jsp文件中写入增加员工信息的模态框用ajax将部门的信息传入模态框中。在后端添加增加员工的Service和Controller方法。利用ajax将数据插入进数据库,并在增加完成后关闭模态框和将页面转向最后一条插入数据的页面。对要输入的信息进行验证。验证的信息,对输入的empName和Email进行正则表达式判断。在jsp文件中写入增加员工信息的模态框 ...

2019-03-31 09:25:01 987 1

原创 SSM:七、基于ajax对分页数据的前端显示

SSM:七、基于ajax对分页数据的前端显示新建一个list_1.jsp,引入相应的jQuery文件和bootstrap文件。搭建html页面。用js脚本处理ajax请求,对后端的数据进行显示。解析表格信息解析分页的文本信息分页的导航信息新建一个list_1.jsp,引入相应的jQuery文件和bootstrap文件。本人在cdn远程引入相应的文件。 <link href="//...

2019-03-30 16:11:31 578

原创 SSM:六、基于JSTL表达式对分页数据的前端显示

SSM:六、基于EL表达式对分页数据的前端显示新建一个list.jsp,引入相应的标签库以及配置服务器的请求路径。搭建好页面框架以及利用bootstrap前端样式框架对页面进行渲染。用后端的model模型对分页数据在前端利用EL表达式进行页面的显示。测试页面的显示新建一个list.jsp,引入相应的标签库以及配置服务器的请求路径。<%@ taglib prefix="c" uri="ht...

2019-03-29 21:14:28 354

原创 SSM:五、mybatis分页插件之PageHelper的使用

SSM :五、mybatis分页插件之PageHelper的使用配置po.xml,导入相应的jar包。在mybatis的配置文件中写入以下配置。写入相应的Controller文件,以及jsp文件。Mvc的虚拟化测试具体的官方的API及详细的配置请参照https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowT...

2019-03-28 18:50:25 401

原创 SSM:四、Mybatis模块化配置 逆向工程

SSM (三)、Mybatis模块化配置 逆向工程mybatis基础配置基于Maven的配置在pom.xml下,配置以下代码在数据库中新建两个表:dept 和 emp在项目下新建一个MBG.xml文件,用来生成逆向文件。以上配置全部完成后,可以进行测试运行成功后,会自动生成pojo、dao以及mapper的文件,如下图所示R0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80...

2019-03-26 17:08:27 260

原创 SSM:三、spring笔记(二):AOP基础

SSM:三、spring笔记(二):AOP基础问题解决方式例子:计算两个数的加减乘除。创建caculator接口实现caculator的实现类caculatorImpl代理类caculatorProxy测试问题代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀,每个方法在处理核心业务的同时还必须兼顾其他的多个关注点。代码分散:以日志需求为例,只是为了满足这个单一的...

2019-03-23 20:26:40 138

原创 SSM:二、spring笔记(一):IOC(反转控制)、DI(依赖注入)、自动装配、作用域

IOC:反转控制、DI:依赖注入、自动装配、作用域IOC:控制反转DI:依赖注入自动装配作用域IOC:控制反转控制反转:类之间的关系,不用代码控制,而是由spring容器来控制,由定义的xml文件来控制,控制权由代码翻转到容器里表现形式:在初始化对象时,在代码无需写new,而是把类之间的关系写到配置文件中去,从下方的代码可以看出初始化SpingTest1,无需使用new对象。DI:依赖注...

2019-03-23 11:30:07 188

原创 SSM:一、在IDEA上基于Maven配置SSM框架

SSM:一、在IDEA上基于Maven配置SSM框架新建一个project新建一个Maven,选择相应的插件填写相应的项目名配置用户配置文件和本地的Maven的仓库存放地址,配好点击next点击完成配置Maven仓库,配置相应的spring,spring-mvc及mybatis版本,配置完成后记得点击右下方的-->import change配置项目的架构配置Tomcat服务器测试启动新建一...

2019-03-22 21:04:53 237

原创 java8新特性之lambda表达式的应用

java8新特性之lambda表达式的应用lambda表达式的基础语法格式Lambda需要函数式接口的支持lambda表达式的基础语法java8引入了一个"->"箭头操作符,也叫做lambda表达式。箭头操作符将Lambda表达式拆分成两部分。格式左侧:Lambda表达式的参数列表右侧:Lambda表达式的所执行的功能,即Lambda体。1、语法格式一:无参数列表,无返回值...

2019-03-21 19:58:06 184

原创 多线程的应用之生产者/消费者例题

多线程的应用之生产者/消费者例题需求分析需求生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员那里取出产品店员一次只能持有固定数量的产品(20),如果生产者试图生产更多的产品,店员会叫生产者停产如果店中有空位放产品了,再通知生产者继续生产,如果店中没有产品了,会叫消费者等一下。如果店中有产品了,会叫消费者过来取。分析1、涉及到多线程问题...

2019-03-20 19:52:26 159

SpringBoot+Vue 宿舍管理系统 (含PPT)

对于毕业党的福利,SpringBoot+Vue的宿舍管理系统,提供技术支撑哦~

2022-07-02

空空如也

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

TA关注的人

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