自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

越是憧憬,越要风雨兼程

记录学习过程,学习心得

  • 博客(50)
  • 收藏
  • 关注

原创 如何实现抢红包?

现在市面上很多聊天交友app,其中的佼佼者就是我们都在用的微信,微信的红包功能更是增加了我们生活的便利,随份子可以不用到场,发红包就行,在群里发个广告,不发个红包都不好意思,母亲节、父亲节、情人节,不再只是一句简单的问候和祝福,发个红包更能增进之间的感情。今天就来聊一下该如何实现发红包、抢红包功能。红包分为两种:群红包和个人红包。个人红包就比较简单了,就只有两个角色,发送者和接收者,类似我们经常说的生产者和消费者。群红包相对复杂一点,分为普通红包和拼手气红包,一种是平均分配,另一种是完全随机。

2020-07-24 09:20:05 1060

原创 Cent OS安装nginx

yum -y install gcc-c++yum -y install -y pcre pcre-develyum -y install -y zlib zlib-develyum -y install -y openssl openssl-develwget http://nginx.org/download/nginx-1.16.1.tar.gztar -zxvf nginx-1....

2019-11-28 15:57:50 1053

原创 SpringBoot 整合 Quartz 多任务动态管理

前言终于抽出时间来写这篇博客了,前段时间用到了调度任务,并且由于要求动态控制,于是就研究了一下,也是遇到了挺多坑,今天来分享一下整合Quartz。关于Quartz 我在这就不多介绍了,如果有兴趣可以去百度搜索一下。以往整合Quartz时需要在数据库里面配置对应的表,但是今天我们不那么配置,只需要一张表即可。直奔主题。建表create table base_quartz_config(...

2019-11-28 15:45:27 1300 2

原创 一个接口有多个实现类的处理方式

在某些特殊业务中,为了方便, 所以采用一个接口有多个实现类,但是如果不指定注入的实现类的话,就会造成启动报错:***************************APPLICATION FAILED TO START***************************Description:Field ocrService in com.cect.web.controller....

2019-11-12 14:58:56 4535

原创 springBoot整合Quartz报org.quartz.SchedulerException: Job instantiation failed

在整合Quartz的时候,新建了5个调度任务,启动后,第一个调度任务报了这样一个错误:2019-11-12 02:36:25.796 [schedulerFactoryBean_QuartzSchedulerThread] ERROR org.quartz.core.ErrorLogger - An error occured instantiating job to be executed. ...

2019-11-12 02:56:44 17831 5

原创 springBoot整合Quartz注入的业务service为空

springBoot整合Quartz过程在下一篇博客。问题描述:springBoot整合Quartz后,job中注入的业务service为null。原因:Spring容器可以管理Bean,但是Quartz的job是自己管理的,如果在Job中注入Spring管理的Bean,需要先把Quartz的Job也让Spring管理起来,因此,我们需要重写JobFactory。解决方法:创建任务工厂...

2019-11-12 02:51:21 10039 1

原创 java执行一个方法后,定时再执行另一个方法

在开发中遇到这样一个需求:在用户登录的时候查询用户购买的授权的到期时间,如果到期时间在两个小时以内,那么两个小时候再次查询用户是否续期,如果没有续期,那么该用户就没有了该产品的授权。一开始考虑用定时任务,每小时进行一次所有用户的授权到期时间查询,但是这样挺浪费资源的。所以就想到了可以new一个线程,用线程休眠来实现功能。public class Test{ static Exe...

2019-10-31 15:46:12 3940

原创 Docker镜像操作

什么是Docker镜像?Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Dock...

2019-10-24 14:44:57 233

原创 Vue 小阶段学习总结

Vue 小阶段学习总结前三天学习了Vue的一些基础知识(首刷到这篇文章的同学,可以点击作者的个人主页查看往期文章),下面来复习一下,更深入的理解所学的知识。工程结构:首先,回顾一下Vue的工程结构:build:里面保存一些webpack的初始化配置config:保存一些项目初始化配置index.html:是首页src:存放最关键的代码package.json:保存一些一来信息...

2019-10-11 15:33:44 10450

原创 Vue 第三天

Vue 第三天练习第二天学了路由配置、编写按钮组件和按钮的点击事件。先练习一遍~按钮自定义点击事件昨天写的按钮的点击事件中,将按钮事件写成了默认的 alert(this.msg) ,如果有些按钮想要异化,按钮的点击事件也是支持自定义的。pageQuiButton.vue://监听子组件的事件(子组件:quiButton.vue)<qui-btn v-on:btnClickEv...

2019-10-11 14:36:07 10024

原创 Vue 第二天

Vue 第二天第一天的时候学了简单的环境搭建和Vue项目的创建,今天先复习一下Vue项目的创建,多练习,才能理解的更透彻。Vue项目搭建:在硬盘上找到一个合适的文件夹放工程,比如:E:\vueDemo,和昨天搭建的第一个Vue项目放在了同一级目录下,执行命令:vue init webpack secondvue初始化一些设置后,此处省略…安装项目依赖:npm...

2019-10-10 16:54:58 10187 1

原创 Vue 第一天

vue 第一天环境安装下载安装nodejs官网下载地址:nodejs下载安装过程一直点下一步即可安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org安装webpackcnpm install webpack -g安装vue脚手架npm install ...

2019-10-09 16:36:36 10480

原创 如果redis没有设置expire,是否默认永不过期?

最近在对项目中redis缓存的过期时间进行设置的时候,忽然想到如果没有设置expire,缓存是否永不过期。如果没有设置有效期,即使内存用完,redis 自动回收机制也是看设置了有效期的,不会动没有设定有效期的,如果清理后内存还是满的,就不再接受写操作。Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置: redis最大内存不足"时,数据清除策略,...

2019-09-18 03:51:30 13749

原创 thymleaf 使用三目运算多个条件判断的写法

前言:最近做的项目中使用到了thymleaf ,因为不是特别会,所以走了很多弯路,在此总结一下。做类似 “男女” 下拉选择的时候,一般使用 0、1 来进行标识,一般这样写:<select class="form-control" id="isRecommend" th:value="${paper.isRecommend=='0'?'推荐':'不推荐'}">这样的只有两个状...

2019-09-17 03:21:47 18954 1

原创 linux搭建maven私服仓库

linux搭建maven私服仓库linux安装maven先解压maven的压缩包apache-maven-apache-maven-3.6.1-bin.tar.gz   命令: tar -zavf pache-maven-apache-maven-3.6.1-bin.tar.gzmaven下载地址:http://maven.apache.org/downl...

2019-09-09 19:49:33 4345

原创 读取Excel指定行指定列位置的数据

使用poi去实现这个功能。需要引入的依赖:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15 </version></dependency&...

2019-08-28 14:56:36 7623

原创 缓存之使用redis缓存

作为一个java小白,最近公司项目中用到了redis缓存,便学习了一下,拿来给大家分享。这次分享的是redis缓存5种数据类型中的String数据类型。理论知识在这就不多多介绍啦,直接来最喜欢的代码吧。自定义缓存工具类:@Componentpublic class RedisUtils { @Autowired StringRedisTemplate stri...

2019-07-23 15:40:40 11369

原创 Mysql事务的隔离级别

并发下事务会产生的问题:1、脏读:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所谓脏读,就是指事务A读到了事务B还没有提交的数据,比如银行取钱,事务A开启事务,此时切换到事务B,事务B开启事务–&gt;取走100元,此时切换回事务A,事务A读到的肯定是数据库里面的原始数据,因为事务B取走了100块钱,并没有提交数据库里面的账户余额肯定还是原始余额,这就是脏读2、不可...

2019-01-17 15:27:17 267

原创 分布式事务常用的解决方案及优缺点

全局事务(DTP模型) --标准的分布式事务全局事务(DTP模型) --XA协议mysql oracle 都是实现了XA协议两阶段提交(Two Phase Commit)J2EE平台中分布式事务的实现标准分布式事务解决方案的利弊优点:严格的ACID缺点:效率非常低(微服务架构不太适用)全局事务下,全局事务管理器(TM) 通过XA接口适用两阶段提交协议(2PC) 与资...

2019-01-07 17:03:34 2612 1

原创 系统架构的演变

集中式架构当网站流量很小,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删盖茶工作量的数据访问框架(ORM)是影响项目开发的关键。存在的问题:代码耦合,开发维护困难无法针对不同模块进行针对性优化无法水平扩展单点容错率低,并发能力差垂直拆分当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,根据业务功能对系统进行拆分...

2019-01-05 10:24:46 575

原创 @Transactional注解在什么情况下会失效,为什么。

首先我们来了解@Transactional这个注解:@Transactional注解事务的特性:1.service类标签(一般不在接口上)上添加@Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方式。2.@Transactional注解只能应用到public可见度的方法上。如果应用在protected、p...

2018-12-28 10:48:45 11938 2

原创 spring面试题之AOP

面试的时候关于spirng的知识点中,AOP绝对是一大热点,那么该怎么回答关于AOP的面试问题呢,接下来,将我自己总结的关于AOP的面试问题分享给各位。(1).Spring AOP用的是哪种设计模式?代理模式。通过代理,可以详细控制访问某个或者某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。(2).谈谈你对代理模式的理解?通过代理,控制对对象的访问,它的设...

2018-12-27 14:51:52 5397 3

原创 Zookeeper伪集群搭建

什么是集群?集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。集群的特点:1.可扩...

2018-12-26 20:32:50 187

原创 java.sql.Date和java.util.Date的区别

文章转载自:https://blog.csdn.net/maoyuanming0806/article/details/78011700 在项目中使用碰到的问题,主要是两者日期格式和转换的问题首先,查看api,java.sql.Date是java.util.Date的子类可见这三个类都是java.utl.Date的子类。而这三个类都是对应与jdbc处理日期格式的类,有着 不同的...

2018-12-12 21:00:02 589

原创 freemarker入门

什么是freemarker?FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与 Web 容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成 XML,JSP 或 Java 等。引入依赖:&lt;dependency&gt; &lt;grou...

2018-12-10 22:12:35 200

原创 ssm项目使用swagger生成接口文档

在学习swagger的时候,看了很多博客,试了好多方法,入了很多坑,总结出以下关于swagger的配置以及运行。在pom.xml中加入swagger的相关依赖: &lt;!-- 引入swagger --&gt; &lt;!--springfox的核心jar包 --&gt; &lt;dependency&gt; &lt;...

2018-11-23 18:30:19 2018

原创 spring mvc中拦截器配置及应用

自定义拦截器:public class HandlerInterceptor1 implements HandlerInterceptor{ /** * controller执行前调用方法 * 返回true表示继续执行,返回false中止执行 * 这里可加入登陆校验、权限拦截等 * * */ ...

2018-11-04 17:01:22 201

原创 Mybatis中一级缓存,二级缓存

缓存的意义:将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。mybatis持久层缓存:mybatis提供一级缓存和二级缓存(mapper级别)一级缓存:mybatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,原理:...

2018-10-30 18:15:45 259

原创 MyBatis中延迟加载

使用延迟加载的意义:在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询,比多表查询速度要快。在互联网企业中,如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,在关联查询,当需要关联信息再查询这个叫延迟加载。resultMap、resultType、延迟加载适用场景:延迟加载:延迟加载实现的方法多种多样,在只查询单表就可以满足需求,为了提高数据...

2018-10-30 16:07:45 703

原创 sleep()和wait()的区别

Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行。sleep()和wait()的共同点:1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException...

2018-10-29 20:11:59 168

原创 Struts2中拦截器

 什么是拦截器:拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用Struts2的Interceptor,其拦截的对象是Action代码,可以定义在Action代码之前或者之后执行拦截器的代码。在项目中,我们经常用来拦截通过非正常程序而进行的访问。例如:权限操作。Struts2的拦截器和Servlet过...

2018-10-26 15:20:03 170

原创 session和cookie的区别

什么是cookie以及cookie有什么作用?当你访问了某些网页,并且对网页的一些设置进行修改,cookies就能跟踪并记录到这些修改,当你下一次访问这个网页的时候,这个网页会分析你电脑上的cookies,进而采取措施像你返回更符合你个性化的网页。比如你此前访问了大量的健身类网站,cookies记录了你的访问行为,广告主就能够根据你的访问行为,向你推送健身类的广告。什么是session以及...

2018-10-26 14:58:13 128

原创 Hibernate中session管理

尽管让程序自主管理 Session 对象的生命周期也是可行的, 但是在实际 Java 应用中, 把管理 Session 对象的生命周期交给 Hibernate 管理, 可以简化 Java 应用程序代码和软件架构。Hibernate 3 自身提供了三种管理 Session 对象的方法: Session 对象的生命周期与本地线程绑定 Session 对象的生命周期与 JTA 事务绑...

2018-10-26 14:38:17 245

原创 Struts2防止用户未登录操作

在做登录案例的时候,我们会考虑到这个问题,在用户未登录之前,用户是不能访问相关信息界面的,那就需要加上权限的控制,告诉用户必须处于登录状态,才可以访问。在ssh框架中,才用struts2的拦截器进行权限的控制那么什么是拦截器呢?拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的...

2018-10-26 11:02:22 362

原创 Spring事务管理

在这里不细说什么是事务了,想明白什么是事务的,可以查阅相关资料,直接进入主题。Spring中事务管理   Spring事务管理高层抽象主要包括3个接口: PlatformTransactionManager  事务管理器                        TransactionDefinition     事务定义信息(隔离、传播、超时、只读)          隔...

2018-10-25 15:40:19 189

原创 Spring中AOP--面向切面编程

最近学习了spring中的AOP(面向切面编程),总结了一下所学的知识,算是学习笔记,来分享一下。什么是AOP?        在软件也中,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架的一个重要内容,是函数式编写的一...

2018-10-23 18:23:46 549

原创 Hibernate中乐观锁和悲观锁。

在hibernate事务处理中造成的写问题(丢失更新的问题:更新一定是查询最新的结果),之前博客简单描述了一下解决方法,这篇博客,来详细讲解一下如何用乐观锁和悲观锁解决写问题。下面我们通过例子来理解:在事务操作中,最经典的就是转账案例,如图所示:AB两个用户同时操作数据库,A用户在原余额上添加了10块钱,所以是110元,但是B用户添加了30元,却变成了140元,这就造成了并发操...

2018-10-19 16:39:19 261

原创 Hibernate事务处理

事务: 事务通俗说就是逻辑上的一组操作,要么全都成功,要么全都失败!!!  事务有四个特性,简称为ACID:原子性(Atomicity):事务一组操作不可分割.一致性(Consistency):事务的执行前后,数据完整性要保持一致.隔离性(Isolation):个事务在执行的过程中不应该受到其他事务的干扰.持久性(Durability:一旦事务结束,数据就永久保存数据库....

2018-10-19 15:01:51 413

原创 java中保留字和关键字的区别

自己做题的时候遇到了这个问题,之前一直不知道有保留字的存在,百度以后,结合自己所理解的,来分享一下。保留字:              指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用(就是系统可以用也可以不用,但是你不能用)。         在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,或者该词虽然在Java中没有特殊含义,以后版本也不...

2018-10-18 20:12:53 3644

原创 Hibernate中的一对多关系映射

Hibernate框架中关系映射中有:一对一、一对多和多对多,但常用的就是一对多,所以本篇博客就大体概述了一下一对多关系映射。一对多关系:例如:客户和订单,客户是一,订单是多 创建customers、orders数据表 在多方添加一方的外键 (在orders表添加customer_id) 建立多对一关系映射  : 在 Order.hbm.xml 配置&lt;m...

2018-10-17 17:06:54 1967

空空如也

空空如也

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

TA关注的人

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