自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis以及Java使用Redis

Redis是一个基于内存的 key-value 结构数据库。基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛官网:https://redis.io中文网:https://www.redis.net.cn/Redis安装包分为 Windows 版和 Linux 版:Windows版下载地址:https://github.com/microsoftarchive/redis/releases。

2023-07-30 20:53:01 867

原创 mybatis在线查看文档

MyBatis一对多关联查询

2023-07-29 17:11:18 84

原创 通讯框架与Netty

Socket就是套接字,是两个程序之间通过双向信道进行数据交换的端,可以理解为接口。使用Socket编程也称为网络编程,Socket只是接口并不是网络通信协议。TCP以及UDP协议实现了Socket技术,它们都是在OSI七层网络模型的传输层的。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,建立通讯前TCP需要经过三次握手,断开连接前需要经过四次挥手。TCP协议应用场景:HTTP、HTTPS、FTP协议。

2023-04-15 17:26:08 445

原创 Vue+Springboot项目,前后端分离项目加密传输

项目描述:通过RSA对前后端传输的数据进行加密解密,前端通过公钥进行加密,Java后端通过私钥进行解密。使用Vue脚手架搭建项目。

2023-03-18 13:04:27 1404

原创 数据库DateTime类型的字段select查询时封装Java对象的Long类型属性中

unix_timestamp(数据库字段)将datetime类型的数据库字段转为Java对象的Long类型属性。数据库DateTime类型的字段select查询时封装Java对象的Long类型属性中。

2023-03-14 21:08:38 289

原创 Lambda表达式

Lambda、流

2023-03-12 21:16:51 1820 1

原创 docker命令

docker相关命令

2023-02-22 11:42:26 54

原创 为什么不推荐使用JDK自带的线程池

不建议使用JDK提供的默认线程池

2023-02-21 18:00:54 233

原创 mybatis使用typeHandler的步骤

在Java中的属性是String[]以及Date类型的,在数据库中对应字段存储的数据类型是Varchar以及bigint类型的,这个时候就要用到类型转换器,不然会出错,SQL语句执行失败。第五步:application.properties文件。第四步:自定义typeHandler。第七步:service层及实现。第六步:controller。第八、dao层及对应的xml。

2023-02-17 21:49:53 952

原创 子父类中静态代码块、普通代码块、无参构造函数的执行顺序

父类中有静态代码块、普通代码块、无参构造函数,子类中有静态代码块、普通代码块、无参构造函数,依次执行顺序

2022-07-07 21:52:22 545

原创 后端返回一个下载Excel表格的url,要PC浏览器打开下载,前端代码设计

//下载账单 downloadBill(type){ //获取账单内容 billApi.downloadBill(this.billDate, type).then(response => { console.log(response) const element = document.createElement('a') element.setAttribute('href', 'data:applic...

2022-05-08 22:24:20 521

原创 需求:查找下单一段时间以后并且没有支付的订单

使用需要比较一段时间后需要做的各种业务场景

2022-05-08 21:36:42 230

原创 cron表达式的书写规则

cron的默认书写方式

2022-05-08 21:25:37 245

原创 跨域问题解决方案

1、什么是跨域因为浏览器有一个同源策略(SOP),当不同的域名端口、协议的项目内去请求其他项目的接口,要把结果直接显示在浏览器页面的时候,这个时候浏览器因为同源策略SOP,这个时候会拒绝解析请求的结果同时报错405.(注意:这个时候是可以拿到请求的结果的,但是不能显示结果),这就是跨域的问题。为了解决跨域的问题,制定了一个标准,CROS(允许跨域)。2、跨域问题的解决方案第一:jsonp缺点:只能使用get请求 a项目前端代码: <scriptty...

2020-07-05 11:11:00 438

原创 zookeeper(三)---使用zookeeper实现服务的主从选举和哨兵机制

代码:maven依赖: <groupId>com.junlaninfo</groupId><artifactId>sentry</artifactId><version>1.0-SNAPSHOT</version><parent> <groupId>org.springframework.boot</groupId> <artifactId>spr..

2020-07-04 12:54:26 663

原创 分布式session问题解决方案

一、什么是分布式session问题a、什么是sessionsession是一种会话技术,我们知道http是无状态协议的,就是这次连接传输数据后,下次连接服务器是不知道这次的请求是谁的,因此我们要做一个标记,让服务器知道每次请求是哪个(客户端)浏览器发出的,就是请求的时候服务器会创建一个session把session的值保存在服务器,把sessionID返回给浏览器,请求的时候把sessionID放在请求头中,这样服务器解析之后就能发现是哪个浏览器发来的请求b、session存放在什么地方,会..

2020-07-03 12:57:54 2285 1

原创 zookeeper(二)使用zookeeper实现分布式锁

一、什么是分布式锁,它为什么会产生现在我们的项目大多都是分布式部署的,分布式部署一个显而易见的好处就是可以减轻服务器的压力,但也带来一系列的问题,比如:分布式session一致性问题、分布式配置中心、分布式任务调度平台、分布式日志平台、分布式全局ID的生成、分布式事务、分布式限流、分布式锁。由于项目是分布式部署的,这样部署的每一份都会有自己的jvm运行项目,但是它们需要共享一些实例变量,但是在高并发的情况下,可能有多个jvm同时操作实例变量,这样就会造成数据不一致、值不同步的问题,这个时候我们需要保

2020-06-30 21:51:58 260

原创 zokeeper(-)

一、知识点(1)zookeeper 的简介与安装(2)zookeeper的应用场景(3)zookeeper的存储结构与特性(4)zookeeper负载均衡的原理(这就是dubbo的负载均衡原理,dubbo是默认有负载均衡的功能,而zookeeper就要自己写算法实现负载均衡的功能)二、zookeeper的简介和安装zookeeper是Java语言实现的分布式工具。安装的话,建议使用Linux版本的zookeeper,使用windows版本的经常出些莫名奇怪的错。ZooInspecto

2020-06-29 16:37:44 298

原创 使用过滤器解决xss攻击、SQL注入问题,自定义注解+aop+反射解决xss攻击问题

一、过滤器和拦截器的区别:不同点: 过滤器的执行顺序在拦截前 过滤器基于servlet,而拦截器是基于框架,springmvc 过滤器是基于函数回调,而拦截器是基于Java的反射机制参考博客:https://blog.csdn.net/zxd1435513775/article/details/80556034二、基于过滤器解决xss问题(1)、什么是xss问题 xss问题就是脚本攻击,是指在参数中携带一些script脚本等能在HTML执行的脚本,从而呈现...

2020-06-07 12:48:32 2233 1

原创 Java基础-file和递归

学习目标:File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了。那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘、光盘、U盘等)上。当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操.

2020-05-29 10:51:11 326

原创 tortoisegit使用小结

一、创建本地仓库二、提交到本地仓库三、推送到码云四、回滚代码假设现在我已经提交了两次,这个时候,我不想要第二次提交的代码,我要第一次,那么这样操作,右键显示提交的记录我们看到有两个提交的记录,这里我们回滚到第一个记录右键这个记录经过这样操作,代码就回滚到第一个记录了。英文版本的tortoisegit操作:https://blog.csdn.net/qq_39291929/article/details/100669716五...

2020-05-24 22:14:27 281

原创 线程池-4

一、什么是线程池?线程池就是在线程使用之前先把线程创建出来,把线程放在一个池子里面养着,等需要用的时候直接使用,任务完成之后再把线程归还。二、线程池有哪些作用第一:提供响应效率,有了线程池,当有任务的时候,就有线程直接去完成任务,不用调用系统的资源去新建线程第二:节约系统资源,线程池中的线程是可以回收重复利用的,降低新建和销毁线程的资源消耗。第三:提高线程的管理性,我们知道线程是稀缺资源,不能一直无限制的创建,通过使用线程池我们可以进行统一分配、调优和监控三、线程池的创建方式Ja

2020-05-24 13:05:00 141

原创 Java并发编程-3

并发包Java多线程相关类的实现都在Java的并发包concurrent,concurrent包主要包含3部分内容,第一个是atomic包,里面主要是一些原子类,比如AtomicInteger、AtomicIntegerArray等;第二个是locks包,里面主要是锁相关的类,比如ReentrantLock、Condition等;第三个就是属于concurrent包的内容,主要包括线程池相关类(Executors)、阻塞集合类(BlockingQueue)、并发Map类(ConcurrentHashMa

2020-05-23 11:18:27 141

原创 CAS-2

1、cas是什么cas就是compare and swap,比较和交换2、什么是重量级锁虚拟机分为用户态和内核态,重量级锁就是需要操作系统进行调配资源,轻量级锁是不用惊动到操作系统,使用到重量级锁:从用户空间切换到内核空间3、锁的升级过程(synchronized升级)Java1.6为Synchronized做了优化,增加了从偏向锁到轻量级锁再到重量级锁的过度锁的升级过程就是:new一个新的对象,这只是一个普通对象,使用的是偏向锁,然后如果有轻度的竞争,变为轻量级锁,如果竞争..

2020-05-11 11:04:17 677

原创 多线程-1

1、线程和进程的区别进程是线程的集合,线程是进程中的一条执行路径。比如我们拿QQ为例,那么QQ就是一个进程,而聊天、传输任务等就是多个线程。2、为什么要使用多线程充分利用CPU的空余时间3、多线程的创建方式第一种:继承thread类,重写run方法第二种:实现Runable接口,重写run方法第三种:使用匿名方式第四种:使用线程池创建线程4、创建线程,使用继承thread类好还是实现Runnable接口好,为什么创建线程,实现Runnable接口好,因为Java只支持

2020-05-11 10:39:19 166

原创 springboot系列教程

https://github.com/xuwujing/springBoot-study

2020-04-22 16:04:38 157

原创 springboot整合mybatis,使用逆向工程和使用通用mapper的方式

一、使用逆向工程集成mybatis的步骤:1、导入mybatis和数据库的依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <ver...

2020-04-14 23:17:45 474

原创 springboot调用支付宝接口,实际付款、查询订单、退款

一、支付宝的文档中心https://opendocs.alipay.com/apis/api_1/alipay.trade.refund这三个接口是PC页面最重要的三个接口,在支付宝的文档中心,有代码的式例,封装参数不要使用支付宝的式例代码那样,使用map集合封装参数,然后使用Json转化为String,接口的回复按照文档中说的,用get和文档中的回复参数(用驼峰表示)二、mave...

2020-04-03 17:41:26 2027

原创 使用消息中间件(RaqbbitMQ和ActiveMQ)发送短信

一、短信发送,使用阿里云短信二、编写短信生产方RabbitMq_promaven依赖:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &...

2020-04-02 20:06:59 1406

原创 springboot系列(七)使用hibernate-valitor校验参数

参考链接:https://www.toutiao.com/i6769013195853005323/

2020-03-19 15:19:45 146

原创 springboot系列(六)项目使用undertow服务器

参考链接:https://www.toutiao.com/i6768629194705338884/

2020-03-19 15:18:06 663

原创 项目的基础骨架

参考链接:https://mp.weixin.qq.com/s?__biz=MzIwMTY0NDU3Nw==&mid=2651941728&idx=1&sn=8e01ea69524168ca542d580a0b6ce425&key=a0d400227dbee67d7d23460968272157a2c4e42551d042c7230c36800336fa32bc36...

2020-03-18 22:35:02 127

原创 RedisSon实现分布式锁

主要步骤:1、引入RedisSon的依赖2、配置RedisSon的配置类3、使用RedisSon构建分布式锁,在需要使用分布式锁的地方注入RedissonClient这个类来获取锁第一步、引入依赖:<parent> <groupId>org.springframework.boot</groupId> <ar...

2020-03-17 21:26:52 98

原创 深入理解servlet

总结:一、servlet的生命周期Servlet程序的生命周期由tomcat服务器控制的!!!servlet的四个重要的方法是自身的无参构造函数、init方法、service(或者是doGet、doPost方法,其中三个功能我测试的时候是一样的,三者有你没我,都有只会执行service的方法)、destory方法(当servlet重启或者tomcat关闭的时候会运行)二、servlet...

2020-03-17 18:56:31 185

原创 自定义注解,aop实现自定义注解的日志功能

功能:使用aop实现自定义注解日志记录1、定义注解 LogAutoannotation@Documented@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface LogAutoannotation { /* 接口描述 */ String ...

2020-03-17 18:55:56 200

原创 数据库主从复制和读写分离

主从复制一、主从复制的介绍 MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为我再Master端执行了一条SQL命令,那么在Salve端同样会执行一遍,从而达到主从复制的效果。二、主从复制的原理MySQL的主从复制是MySQL本身自带的...

2020-03-10 15:35:06 321

原创 后端架构的演变过程

后端的应用架构经过发展,分为单一应用架构、垂直应用架构、分布式应用架构、面向服务的分布式应用架构、微服务架构等。一、单一应用架构把所有功能都集中在一个项目里面,类似于刚学习时的SSM,就把所有的功能都放在同一个项目。适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。缺点: 1、性能扩展比较难2、协同开发问题3、不利于升级维...

2020-02-24 20:24:24 1317

原创 springboot系列(二)

第二章:集成SpringBootJPA完成CURD一、日志配置直接用springboot内置的logback,使用方式是(在application.properties配置)logging.level.root=info#logging.path=D:/logslogging.file=my.log(日志文件放到D:/logs文件夹不会创建,直接放到项目里面,应该是没有权限创建,才...

2020-02-21 20:08:42 75

原创 git忽略文件及清除本地仓库

忽略规则:https://www.jianshu.com/p/60281010a215清除本地仓库https://blog.csdn.net/weixin_42956047/article/details/89469287

2020-02-19 16:51:59 457

原创 springboot系列(一)简单使用springboot

使用 SpringBoot 完成一个简单的 Web 应用程序开发,初步体验 SpringBoot 快速、简洁的特性。操作步骤构建项目打开 Idea,依次选择 File -> New -> Module,打开 Module 面板。左侧栏选择 Maven,点击下一步。填写 groupId、artifactId、version,点击下一步。填写项目名,一般保持与 art...

2020-02-19 13:24:57 194

Hessian的使用配置步骤

远程方法调用的比较,Hessian方法的介绍和相关配置.Hessian是一个轻量级的remoting on http工具,采用的是Binary RPC协议,所以它很适合于发送二进制数据,同时又具有防火墙穿透能力。Hessian一般是通过Web应用来提供服务,因此非常类似于平时我们用的 WebService。只是它不使用SOAP协议,但相比webservice而言更简单、快捷。这个文件可以是hessian在spring项目和web项目的简单配置

2018-10-26

空空如也

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

TA关注的人

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