自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tomcat启动,服务器内存不足,导致启动不了

修改Tomcat的bin目录下的catalina.sh文件可以设置在cygwin=false的的上面一行加上:JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m'

2022-04-06 09:43:22 1308

原创 日期字符串校验,yyyy-MM-dd HH:mm:ss格式

带时分秒String regex = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26]).

2022-01-19 16:39:00 604

原创 jquery.PrintArea.js实现打印分页功能

只需要在局部打印页面最后加上下行代码即可实现打印分页<div style="page-break-after: always;"></div>

2021-08-13 10:54:55 1089

原创 isBlank与isEmpty的区别

isEmpty不会把空格、换行等特殊字符判断为空,但是isBlank会将这些判断为空

2021-08-06 16:04:31 208

原创 BigDecimal数字格式化遇到的问题

简单说下今天遇到的数字格式化问题,想格式化一串数字用千分符,并且保留两位小数。刚开始得时候用的pattern是 ,###.00它对于小数点前边不是0的数字是有效的,可以正常显示。比如1,000.01,但是对于像0.01这样的数字就会出现问题,会显示为**.01**。后来一通寻找才找到合适的pattern。#,##0.00。这个pattern可以让0.12正常显示。...

2021-05-17 18:33:43 458 1

原创 Tomcat: Can‘t load IA 32-bit .dll on a AMD 64-bit platform问题

解决方法:替换Tomcat目录bin下的tcnative-1.dll 为64位的版本,问题得以解决。下载地址:[http://files.cnblogs.com/inteliot/tcnative-1.rar]

2021-01-15 17:02:59 87

原创 Tomcat报错严重: Unable to process Jar entry [module-info.class****\!] from Jar

折磨了将近一天的问题,刚开始百度出来的都是让我删除maven仓库中的log4j jar包里的module-info.class,但关键是我的项目并没有使用到maven,这就很难受了。解决:照葫芦画瓢,既然都让删除jar包中module-info.class,那就按照错误提示的jar包删除里边的module-info.class,问题得以解决。只不过并不是去maven仓库里找jar包,而是去WEB-INF下的lib中找到对应的jar包,删除module-info.class即可。...

2021-01-15 16:56:31 1504

原创 使用Jackson报错:java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefin

版本兼容问题我的spring版本为5.2.8.RELEASEjackson版本为2.6.7将jackson版本改为2.10.0即可<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifact

2020-11-03 19:28:39 731

原创 对于分段锁的简单理解

总是记不清分段锁与ConcurrentHashMap的实现原理,今天来用自己的理解类比一下ConcurrentHashMap中分段锁的实现。ConcurrentHashMap使用了分段锁来保证线程安全,效率比起使用synchronized的HashTable要高的很多。每个集合都可以看作是一个存储东西的房子,HashTable与ConcurrentHashMap存储的都是HashEntry数组(每个数组里面是链表,暂且忽略,直到就好)。HashTable:在HashTable这个房子中,只有一个房间

2020-11-03 19:26:43 784

原创 记录一下使用SpringDataJpa踩到的坑

自己写的接口CustomerDao已经继承了JpaRepository<Customer,Long>和JpaSpecificationExecutor接口,但是在测试的时候,CustomerDao自动装配之后,却只有后者中JpaSpecificationExecutor的方法,前者JpaRepository没有继承到,百思不得其解,于是到处搜索问题,有说因为jdk版本是9的原因,但是我使用的是1.8版本,所以解决方法无效,最后想到可能是版本兼容问题,我使用的spring版本为5.2.8最新版本,

2020-11-03 19:24:32 168

原创 使用mybatis逆向工程出现Column name pattern can not be NULL or empty问题

使用Mybatis-generator时出现以下错误:Column name pattern can not be NULL or empty错误产生的原因是因为使用了高版本的mysql驱动,当然你可以使用较低版本的mysql驱动,网上很多解决方案也是这样的。这里介绍根本的解决方案: connectionURL="jdbc:mysql://localhost:3306/shop?useSSL=false&amp;amp;nullNamePatternMatchesAll=true"后面的

2020-11-03 19:21:48 673

原创 Spring中bean的生命周期是怎样的?

对于普通的Java对象,当new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收。而由Spring IoC容器托管的对象,它们的生命周期完全由容器控制。Spring中每个Bean的生命周期如下:文章目录实例化Bean设置对象属性(依赖注入)注入Aware接口BeanPostProcessorInitializingBean与init-methodDisposableBean与destroy-method实例化Bean对于BeanFactory容器,当客户想容器请求一个尚未初始化的bea.

2020-11-03 18:37:20 208

原创 Oracle数据库基础

文章目录Oracle相关操作Oracle函数的使用Oracle视图、索引、plsql编程语言Oracle存储过程Oracle触发器Oracle连接数据库相关的数据与过程、调用存储过程Oracle相关操作创建表空间,指定文件所在位置是服务器上的位置,指定大小可扩展,每次扩展10m-- 创建表空间create tablespace syhdatafile 'c:\syh.dbf'size 100mautoextend onnext 10m;删除表空间-- 删除表空间drop ta

2020-10-20 18:40:05 86

原创 Linux常用指令

1. 列出文件列表:ls ll在linux中以 . 开头的文件都是隐藏的文件lsls -a 显示所有文件或目录(包含隐藏的文件)ls -l 缩写成ll2. 切换目录命令cd:使用cd app 切换到app目录cd … 切换到上一层目录cd/ 切换到系统根目录cd ~ 切换到用户主目录cd - 切换到上一个所在目录使用tab键来补全文件路径3. 创建目录和移除目录:mkdir rmdirmkdir(make directory)命令可用来创建子目录。mkdir app

2020-10-15 09:18:43 61

原创 springcloud(hystrix,config,zuul)

文章目录Hystrix加入pom依赖创建Hystrix服务修改服务调用方修改服务提供方HystrixCommand的配置扩展使用类全局配置Openfeign集成Hystrix开启OpenFeign的Hystrix配置FeignClient服务超时配置FeignClient的fallbackFactorysentinel流量防卫兵Config基本原理创建config服务端给启动类加注解修改配置文件访问测试客户端连接 Config引入pom依赖修改配置文件Zuul创建zuul服务创建zuul服务端Zuul服务的

2020-10-14 17:15:41 114

原创 springcloud(eureka、openfeign、ribbon)

文章目录Eureka创建Eureka服务端访问Eureka服务监控网页创建Eureka客户端创建高可用Eureka服务端在高可用环境中客户端的配置Eureka、Consol、Nacos比较OpenFeign引入OpenFeign创建接口client端使用测试OpenFeign的基本配置微服务中的公共类创建公共模块common 的pom文件父级pom文件打包公共模块RibbonRibbon的负载策略Spring Cloud默认集成微服务集群的解决方案,它提供了非常全面的组件来供开发者使用。它吸收了Sprin

2020-10-14 17:15:34 156

原创 RocketMQ高级

文章目录RocketMQ的消息存储结构RocketMQ的刷盘机制RocketMQ高可用机制RocketMQ负载均衡Producer负载均衡Consumer负载均衡消息重试死信队列消费幂等RocketMQ的消息存储结构ConsumerQueue类似于CommitLog的索引文件(按偏移量查找),体积很小IndexFile:为消息查询提供了一种通过key或者时间区间来查询的方法,体积大RocketMQ的刷盘机制RocketMQ的消息是存储到磁盘上的,这样既能保证断电后恢复,又可以让存储的消息量

2020-10-14 17:15:27 73

原创 RocketMQ订单支付场景

文章目录时序图实战实现的部分逻辑生产消息使用多线程优化消费消息订单服务的消费逻辑消费的幂等性处理时序图实战实现的部分逻辑生产消息创建临时表,以订单id为key存储消息,接收到成功的回调,删除对应记录sendMessage使用多线程优化注入线程池对象开启线程消费消息订单服务的消费逻辑消费的幂等性处理回退库存借助于消费日志记录表如果操作失败,在catch块记录异常日志。...

2020-10-14 17:15:11 783

原创 接口安全校验

文章目录自定义鉴权注解AuthCheck.java加密辅助类SignUtil.javaapi拦截器ApiInterceptor.java自定义鉴权注解AuthCheck.javaimport java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Inherited;import java.lang.annotation.Retention;import

2020-10-14 17:15:02 541 1

原创 RocketMQ入门

文章目录什么是MQ为何用消息队列linux下安装RocketMQRocketMQ监控平台springboot整合同步发送对象异步消息单向消息顺序消息延时消息批量消息事务消息消息过滤RocketMQ集群实战场景(逾期订单的状态修改)实战场景(rpc下的异步处理)什么是MQ消息队列(Message Queue),是一种应用程序对应用程序的通信方法,是分布式系统的重要组件。为何用消息队列可以解决一些应用场景的高并发问题。当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用MQ来处

2020-10-14 17:14:54 103

原创 利用Redis的setex以及订阅/发布功能实现逾期订单的状态修改

文章目录场景描述修改redis.conf配置,以拿到发布的key继承事件监听器,重写onMessage方法编写配置类,注入Bean测试结果存在缺陷场景描述电商平台,客户下单未支付,会有锁库存的操作,支付有效时间为15min,15分钟之后订单失效,释放库存,修改订单状态。如何实现?默认已连接redis,并在springboot引入依赖修改redis.conf配置,以拿到发布的key继承事件监听器,重写onMessage方法public class KeyExpiredListener

2020-10-14 17:14:46 243

原创 linux下solr的安装以及在springboot中的集成

文章目录为什么要用全文搜索引擎linux下安装solrsolr与springboot的简单集成参考文章为什么要用全文搜索引擎Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Fi

2020-10-14 17:14:37 76

原创 linux下的mysql安装及mycat读写分离、分库分表

文章目录mysql安装mycat安装,读写分离配置主从同步配置设置主库mysql的配置文件设置从库mysql的配置文件分库分表配置同一个数据库下的分表操作mysql安装/opt 目录下创建mysql文件夹解压mysql的压缩包至mysql文件夹下tar xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar -C mysql/删除Mysql的MariaDB依赖rpm -qa|grep mariadb [查找mariadb]rpm -e mariadb

2020-10-14 17:14:30 61

原创 linux下的redis使用及redis集群(主从、哨兵)

文章目录linux下安装redisredis集群Redis主从复制的搭建(一主二仆)角色设计redis主库搭建redis从库搭建测试主从复制的机制Redis主从复制(一主两从/一主多从)的分析Redis Sentinel(高可用集群-哨兵模式)配置Sentinel.conf文件启动reids集群启动sentinel测试springboot中的配置(application.yml)redis单点、redis主从、redis哨兵 sentinel,redis集群cluster配置搭建与使用linux下安

2020-10-14 17:14:21 90

原创 nginx在linux下的使用以及SpringSession

文章目录nginx优势(反向代理、负载均衡)nginx的安装nginx的访问分配策略流量限制根据ip控制速率控制并发连接数静态文件服务器跨域配置允许全局的跨域允许指定路径跨域在代码中加入跨域配置SpringSessionSpringBoot+SpringSession+Redis示例nginx优势(反向代理、负载均衡)作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,能够支持高达 50,000 个并发连接数的响应。作为负载均衡服务器:Nginx

2020-10-13 12:22:16 46

原创 mybatis、spring、springMVC、springboot的源码

文章目录mybatisspringspring的@Autowired注解注入bean的动态代理Bean的实例化过程spring Bean的生命周期springMVCspringbootmybatisspringspring的@Autowired注解注入bean的动态代理Bean的实例化过程spring Bean的生命周期参考文章:请别再问Spring Bean的生命周期了!面试官:请你描述下 Spring Bean 的生命周期?springMVCspringboo

2020-10-13 12:22:03 126

原创 linux常用命令及jdk、tomcat安装

文章目录什么是Linux常用命令查看ip查看当前目录文件编辑文件操作目录查找文件压缩包及解压包开放服务器端口用户添加查看进程安装JDK安装tomcat什么是Linux一种免费,开源的操作系统常作为服务器的操作系统使用在目前市面上的服务器操作系统一般使用linux,极少数使用Windows Server(微软公司为服务器提供的应用操作系统,包含更加全面的权限管理系统以及防火墙机制)常用命令查看ipifconfig查看当前目录文件ll:显示当前目录下的文件以及文件信息ls:显示当前

2020-10-13 12:21:55 45

原创 springboot_3--task、mybatis注解开发、mybatis-plus

文章目录定时任务mybatis基于注解开发mybatis-plus实体类用到的注解crud测试自定义配置类,配置分页插件及乐观锁插件逆向工程分页插件使用定时任务玩转SpringBoot之定时任务详解(定时表达式持久化、多线程执行定时任务)springboot内部集成,不需要引入jar包,不需要配置。定时任务使用务必存进redis或mysql,以防服务器挂掉定时任务丢失。使用(基本同spring):在Application.java添加注解@EnableScheduling编写定时

2020-10-13 12:21:43 144 1

原创 springboot_2--thymeleaf、异常、log4j、mybatis、redis

文章目录thymeleaf模板引擎简介使用thymeleaf模板语法链接传参springboot异常处理日志集成mybatis集成redis集成RedisTemplateStringRedisTemplate基于注解的使用thymeleaf模板引擎简介作用:做同步开发使用,前端代码与后端代码在一个项目中。类似于jsp,用来获取后端java代码的数据(request,session,servletContext),在html中使用模板引擎技术来获取数据。同步:用户发起请求url(http://

2020-10-13 12:21:34 146

原创 springBoot_1--启动流程、部署、WebMvcConfigurer

文章目录认识springboot框架springboot简单原理认识springboot的目录结构启动类认识相关的加载配置部署springboot项目WebMvcConfigurer接口进行springMVC扩展使用认识springboot框架解决ssm框架的繁琐配置文件,其实是spring框架的深入的应用,把ssm框架中的习惯性的配置信息作为了默认的预配置。是一个spring技术的全家桶。整个web开发的技术栈基本都做了支持。springboot简单原理创建的springboot项目,是从

2020-10-13 12:21:24 285

原创 activiti工作流引擎组件

文章目录学习目的设计思想使用流程变量流程部署及执行测试类LeaveServiceLeaveServiceImpl学习目的为了解决项目中某些特殊的业务场景,流程审批业务(请假审批,出差审批,申请单审批,报销单审批,公文的流转)。设计思想比如开发请假流程(员工请假申请apply–>部门经理审批–>if(请假天数>3天)–>总经理审批–>结束​ -->if(请假天数<=3天)–>结束)。第一步:提供了ide插件

2020-10-13 12:21:07 429

原创 BIO、NIO、多路复用

文章目录系统调用和中断BIONIO多路复用系统调用和中断内存空间可以粗略地认为划分为两部分,操作系统和应用程序。应用程序运行依赖于操作系统。操作系统有保护模式,防止攻击。操作系统向下管理硬件,向上提供系统调用。中断: 为了让多个进程可以并发执行。分为软中断和硬中断。硬中断:晶振计时,到时间即切换进程,保存上一进程状态;软中断:由应用程序通知触发,内核放下手头工作先执行该进程的任务。BIO阻塞IO:一个线程对应一个连接。NIO一个线程处理多个连接。多路复用

2020-10-13 12:21:00 93

原创 fastdfs分布式文件存储

文章目录pom引入fdfs_client.confDfsUtil.java文件上传、下载、删除、获取元数据pom引入 <dependencies> <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27</version&

2020-10-13 12:20:47 78

原创 邮件和短信发送

文章目录短信发送邮件发送手写测试使用封装的工具类短信发送使用阿里云接口。public class Sms { public static void main(String[] args) { sendMsg("写手机号","模板json","模板json"); } public static void sendMsg(String phone,String name,String days){ DefaultProfile profile

2020-10-13 12:20:32 249

原创 excel和word的读写

文章目录excel依赖读入和导出word导出(基于freamwork)依赖编辑word模板,另存为xml(表格数据需要手动修改xml文件)测试代码100000 行级别数据的 Excel 导入优化之路excel依赖读入和导出public class Excel { public static void main(String[] args) throws Exception { // 读取excel List<Map<String, St

2020-10-12 21:36:57 160

原创 token替代session进行登录验证

文章目录LoginHandler(将登陆成功的token存入响应头发给前端)LoginServiceImpl(登录与注销操作与redis交互)前端axios请求与响应拦截器写法前端页面登出LoginInterceptor(spring注册登录拦截器)CurrentLoginUser(共享当前登录用户信息)JwtUtil(生成与解析token)LoginHandler(将登陆成功的token存入响应头发给前端)@Controller@RequestMapping("login")public cl

2020-10-12 21:36:49 324

原创 远程访问接口和定时任务

文章目录RestTemplate接口远程访问定时任务jdk:TimerTaskspring:taskRestTemplate接口远程访问在java代码里访问restful服务,可以使用apache的HttpClient。同时在spring-data框架中提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更

2020-10-12 21:36:42 244

原创 redis缓存数据库

文章目录redist特点redis安装及配置redis-javaredis的线程模型redis 常见数据结构以及使用场景分析StringHashListSetSorted Setredis 设置过期时间redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)redis 事务缓存雪崩和缓存穿透问题解决方案**缓存雪崩****缓存穿透**如何保证缓存与数据库双写时

2020-10-12 21:36:35 134

原创 ssm+log+redis登录小demo

文章目录本练习场景handler代码serviceImpl代码RedisHeadInfo字段头总结本练习场景用户输入手机号,申请验证码后台生成验证码,存入redis,设置5分钟自动过期,返回给用户用户提交手机号和验证码给后台验证后台验证登录信息,验证通过后先查询redis是否保存有该用户信息,没有则查数据库数据库如无记录,说明为新用户,自动注册将用户信息存入redis,返回handlercontroller将用户信息存入session,返回handler代码@Controll

2020-10-12 21:36:27 131

原创 log4j、log4j2、slf4j的使用

文章目录常用日志组件日志门面log4j2的使用log4j的配置(log4j.properties)Slf4j使用PatternLayout格式化符号说明日志框架 log4j2 全解析常用日志组件Log4j:是Apache的一个开放源代码项目。通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE

2020-10-12 21:36:12 127

空空如也

空空如也

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

TA关注的人

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