- 博客(124)
- 资源 (1)
- 收藏
- 关注
原创 1、node.js安装
下载完成后,双击安装,安装过程基本不用动什么,包括盘符也尽量不要改。cmd运行node -v,能正常提示版本号,证明安装成功。cmd中执行,node 1.js。访问官网,下载LTS版本。
2024-01-17 14:47:16
384
原创 设计模式 - 基于spring的@Component注解实现策略模式
文章目录为什么要使用策略模式?基于spring的@Component注解实现策略模式简单debug为什么要使用策略模式?想象这样一个用户登录的场景,用户可以通过以下多种渠道登录:短信验证码登录账号密码登录第三方账号登录…那么请考虑一下代码级别如何实现?最土味的实现方式,相当丑陋。public void login(String type) { if ("sms".equals(type)) { // todo 执行短信验证码登录逻辑
2022-04-14 15:38:53
1061
原创 shedLock使用redis作为数据源进行多实例@Scheduled任务调度
文章目录github地址pom依赖添加yml配置数据源config配置(数据源 + shedLock)定时任务添加shedLock注解任务执行起来之后,redis中的数据格式github地址https://github.com/lukas-krecan/ShedLockpom依赖添加<!-- redis组件--><dependency> <groupId>org.springframework.boot</groupId>
2021-06-02 19:01:58
634
原创 使用Executors创建四种线程池
文章目录Executors简介newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPoolnewSingleThreadExecutor线程池的四种拒绝策略Executors简介Executors类在java.util.concurrent包下。Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。ne
2021-02-17 13:43:50
749
原创 springcloud(hystrix,config,zuul)
文章目录Hystrix加入pom依赖创建Hystrix服务修改服务调用方修改服务提供方HystrixCommand的配置扩展使用类全局配置Openfeign集成Hystrix开启OpenFeign的Hystrix配置FeignClient服务超时配置FeignClient的fallbackFactorysentinel流量防卫兵Hystrix服务熔断:释放资源,减轻服务器压力。当某一个环节的微服务调用失败后,它将会导致上一层服务失败,服务访问越大则失败率越高,而这一连串的失败就是雪崩效益,下层失败导
2020-09-17 23:01:44
630
原创 springcloud(eureka、openfeign、ribbon)
文章目录Eureka创建Eureka服务端访问Eureka服务监控网页创建Eureka客户端创建高可用Eureka服务端在高可用环境中客户端的配置Eureka、Consol、Nacos比较OpenFeign引入OpenFeign创建接口client端使用测试OpenFeign的基本配置微服务中的公共类创建公共模块common 的pom文件父级pom文件打包公共模块RibbonRibbon的负载策略Spring Cloud默认集成微服务集群的解决方案,它提供了非常全面的组件来供开发者使用。它吸收了Sprin
2020-09-15 15:54:51
711
原创 RocketMQ高级
文章目录RocketMQ的消息存储结构RocketMQ的刷盘机制RocketMQ高可用机制RocketMQ负载均衡Producer负载均衡Consumer负载均衡消息重试死信队列消费幂等RocketMQ的消息存储结构ConsumerQueue类似于CommitLog的索引文件(按偏移量查找),体积很小IndexFile:为消息查询提供了一种通过key或者时间区间来查询的方法,体积大RocketMQ的刷盘机制RocketMQ的消息是存储到磁盘上的,这样既能保证断电后恢复,又可以让存储的消息量
2020-09-14 23:05:30
280
原创 RocketMQ订单支付场景
文章目录时序图实战实现的部分逻辑生产消息使用多线程优化消费消息订单服务的消费逻辑时序图实战实现的部分逻辑生产消息创建临时表,以订单id为key存储消息,接收到成功的回调,删除对应记录sendMessage使用多线程优化注入线程池对象开启线程消费消息订单服务的消费逻辑...
2020-09-14 21:46:58
855
原创 接口安全校验
文章目录自定义鉴权注解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-09-13 22:35:01
435
原创 面试专题
文章目录集合Iterator 和 ListIterator 有什么区别?怎么确保一个集合不能被修改?多线程并行和并发线程和进程线程有哪些状态线程的 run()和 start()有什么区别?创建线程池有哪几种方式?线程池都有哪些状态?线程池中 submit()和 execute()方法有什么区别?多线程锁的升级原理是什么?说一下 synchronized 底层实现原理?synchronized 和 volatile 的区别是什么?synchronized 和 Lock 有什么区别?synchronized 和
2020-09-12 17:27:20
1069
原创 RocketMQ入门
文章目录什么是MQ为何用消息队列linux下安装RocketMQRocketMQ监控平台springboot整合同步发送对象异步消息单向消息顺序消息延时消息批量消息事务消息消息过滤RocketMQ集群实战场景(逾期订单的状态修改)实战场景(rpc下的异步处理)什么是MQ消息队列(Message Queue),是一种应用程序对应用程序的通信方法,是分布式系统的重要组件。为何用消息队列可以解决一些应用场景的高并发问题。当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用MQ来处
2020-09-10 23:19:04
860
原创 利用Redis的setex以及订阅/发布功能实现逾期订单的状态修改
文章目录场景描述修改redis.conf配置,以拿到发布的key继承事件监听器,重写onMessage方法编写配置类,注入Bean测试结果存在缺陷场景描述电商平台,客户下单未支付,会有锁库存的操作,支付有效时间为15min,15分钟之后订单失效,释放库存,修改订单状态。如何实现?默认已连接redis,并在springboot引入依赖修改redis.conf配置,以拿到发布的key继承事件监听器,重写onMessage方法public class KeyExpiredListener
2020-09-10 21:34:21
423
原创 linux下solr的安装以及在springboot中的集成
文章目录为什么要用全文搜索引擎linux下安装solrsolr与springboot的简单集成参考文章为什么要用全文搜索引擎Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field
2020-09-09 16:15:39
229
原创 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包全名 --nodeps
2020-09-08 20:13:45
147
原创 linux下的redis使用及redis集群(主从、哨兵)
文章目录linux下安装redisredis集群Redis主从复制的搭建(一主二仆)角色设计redis主库搭建redis从库搭建测试主从复制的机制Redis主从复制(一主两从/一主多从)的分析Redis Sentinel(高可用集群-哨兵模式)配置Sentinel.conf文件启动reids集群启动sentinel测试linux下安装redis上传文件到opt文件夹tar zxvf redis-3.2.9.tar.gz 解压mv redis-3.2.9 /usr/local/ 移动redis文件夹
2020-09-07 17:33:05
1704
原创 springboot+ngnix的跨域session不一致问题
文章目录问题描述仅在springboot配置跨域在springboot和ngnix均配置跨域仅在ngnix配置跨域是因为withCredentials设置为true,Origin不能为*?猜想为cookie的samesite的问题解决办法总结问题描述前后端分离页面,Vue+springboot均配置跨域,并访问成功。ngnix代理项目,Vue访问遇到session不一致的问题,session取值为null(使用springSession进行分布式session共享)。仅在springboot配置
2020-09-06 13:53:26
702
原创 leetcode刷题记录_1
文章目录最长公共前缀最长回文串验证回文串最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。思路:先利用Arrays.sort(strs)为数组排序,再将数组第一个元素和最后一个元素的字符从前往后对比即可! @Test public void comHeadTest() { String[] strs = new String[]{"qwe", "qwerrr", "q"}; boolean flag =
2020-09-04 20:31:38
149
原创 nginx在linux下的使用以及SpringSession
文章目录nginx优势(反向代理、负载均衡)nginx的安装nginx的访问分配策略流量限制根据ip控制速率控制并发连接数静态文件服务器跨域配置允许全局的跨域允许指定路径跨域在代码中加入跨域配置SpringSessionSpringBoot+SpringSession+Redis示例nginx优势(反向代理、负载均衡)作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,能够支持高达 50,000 个并发连接数的响应。作为负载均衡服务器:Nginx
2020-09-04 17:43:39
274
原创 linux常用命令及jdk、tomcat安装
文章目录什么是Linux常用命令查看ip查看当前目录文件编辑文件操作目录查找文件压缩包及解压包开放服务器端口用户添加查看进程安装JDK安装tomcat什么是Linux一种免费,开源的操作系统常作为服务器的操作系统使用在目前市面上的服务器操作系统一般使用linux,极少数使用Windows Server(微软公司为服务器提供的应用操作系统,包含更加全面的权限管理系统以及防火墙机制)常用命令查看ipifconfig查看当前目录文件ll:显示当前目录下的文件以及文件信息ls:显示当前
2020-09-03 17:42:06
115
原创 springboot_3(task、mybatis注解开发、mybatis-plus)
文章目录定时任务mybatis基于注解开发mybatis-plus实体类用到的注解crud测试自定义配置类,配置分页插件及乐观锁插件逆向工程分页插件使用定时任务springboot内部集成,不需要引入jar包,不需要配置。定时任务使用务必存进redis或mysql,以防服务器挂掉定时任务丢失。使用(基本同spring):在Application.java添加注解@EnableScheduling编写定时任务@Componentpublic class ScheduleServic
2020-08-31 23:27:18
290
原创 springboot_2(thymeleaf、异常、log4j、mybatis、redis)
文章目录thymeleaf模板引擎简介使用thymeleaf模板语法链接传参springboot异常处理日志集成mybatis集成redis集成RedisTemplateStringRedisTemplate基于注解的使用thymeleaf模板引擎简介作用:做同步开发使用,前端代码与后端代码在一个项目中。类似于jsp,用来获取后端java代码的数据(request,session,servletContext),在html中使用模板引擎技术来获取数据。同步:用户发起请求url(http://
2020-08-29 11:33:33
404
原创 springBoot_1(启动流程、部署、WebMvcConfigurer)
文章目录认识springboot框架springboot简单原理认识springboot的目录结构启动类认识相关的加载配置部署springboot项目WebMvcConfigurer接口进行springMVC扩展使用认识springboot框架解决ssm框架的繁琐配置文件,其实是spring框架的深入的应用,把ssm框架中的习惯性的配置信息作为了默认的预配置。是一个spring技术的全家桶。整个web开发的技术栈基本都做了支持。springboot简单原理创建的springboot项目,是从
2020-08-28 23:01:35
765
原创 activiti工作流引擎组件
文章目录学习目的设计思想使用流程变量流程部署及执行测试类LeaveServiceLeaveServiceImpl学习目的为了解决项目中某些特殊的业务场景,流程审批业务(请假审批,出差审批,申请单审批,报销单审批,公文的流转)。设计思想比如开发请假流程(员工请假申请apply–>部门经理审批–>if(请假天数>3天)–>总经理审批–>结束 -->if(请假天数<=3天)–>结束)。第一步:提供了ide插件
2020-08-26 23:22:19
669
1
原创 BIO、NIO、多路复用
文章目录系统调用和中断BIONIO多路复用系统调用和中断内存空间可以粗略地认为划分为两部分,操作系统和应用程序。应用程序运行依赖于操作系统。操作系统有保护模式,防止攻击。操作系统向下管理硬件,向上提供系统调用。中断: 为了让多个进程可以并发执行。分为软中断和硬中断。硬中断:晶振计时,到时间即切换进程,保存上一进程状态;软中断:由应用程序通知触发,内核放下手头工作先执行该进程的任务。BIO阻塞IO:一个线程对应一个连接。NIO一个线程处理多个连接。多路复用
2020-08-25 23:03:06
284
1
原创 fastdfs分布式文件存储
文章目录pom引入fdfs_client.confDfsUtil.java文件上传、下载、删除、获取元数据pom引入 <dependencies> <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27</version&
2020-08-23 18:16:26
126
原创 邮件和短信发送
文章目录短信发送邮件发送手写测试使用封装的工具类短信发送使用阿里云接口。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-08-11 22:50:48
373
原创 excel和word的读写
文章目录excel依赖读入和导出word导出(基于freamwork)依赖编辑word模板,另存为xml(表格数据需要手动修改xml文件)测试代码excel依赖读入和导出public class Excel { public static void main(String[] args) throws Exception { // 读取excel List<Map<String, String>> list = readExcel
2020-08-11 20:28:15
300
原创 token替代session进行登录验证
文章目录LoginHandler(将登陆成功的token存入响应头发给前端)前端axios请求与响应拦截器写法LoginInterceptor(spring注册登录拦截器)CurrentLoginUser(共享当前登录用户信息)JwtUtil(生成与解析token)本练习没有实现退出登录的操作。LoginHandler(将登陆成功的token存入响应头发给前端) /** * 通过手机号和验证码验证登录 * * @return */ @Post
2020-08-11 09:37:43
874
原创 远程访问接口和定时任务
文章目录RestTemplate接口远程访问定时任务jdk:TimerTaskspring:taskRestTemplate接口远程访问在java代码里访问restful服务,可以使用apache的HttpClient。同时在spring-data框架中提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更
2020-08-10 20:07:46
593
原创 redis缓存数据库
文章目录redist特点redis安装及配置redis-java面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)redist特点高性能,持久存储,适应高并发的应用场景。相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。Redis数据库完全在内存中,使用磁盘仅用于持久性。Redis可以将数据复制到任意数量的从服务器。操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。多功能实用工具:Redis是一个多实
2020-08-08 10:28:46
362
原创 ssm+log+redis登录demo
文章目录本练习场景handler代码serviceImpl代码RedisHeadInfo字段头总结本练习场景用户输入手机号,申请验证码后台生成验证码,存入redis,设置5分钟自动过期,返回给用户用户提交手机号和验证码给后台验证后台验证登录信息,验证通过后先查询redis是否保存有该用户信息,没有则查数据库数据库如无记录,说明为新用户,自动注册将用户信息存入redis,返回handlercontroller将用户信息存入session,返回handler代码@Controll
2020-08-07 23:04:37
172
原创 log4j、log4j2、slf4j
文章目录常用日志组件日志门面log4j2的使用log4j的配置(log4j.properties)Slf4j使用PatternLayout格式化符号说明日志框架 log4j2 全解析常用日志组件Log4j:是Apache的一个开放源代码项目。通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE
2020-08-06 17:48:49
216
原创 ssm整合练习
文章目录环境配置commons公共包entity实体类interceptor拦截器filter过滤器exception自定义异常advice 全局异常处理module1模块(mybatis-generator逆向生成)entityhandler(session、分页、增删改查)service部分截取(事务)mapper项目包结构及所需jar包环境配置springmvc.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="
2020-08-05 22:23:39
371
原创 ssm整合
文章目录springMVC与spring整合spring和mybatis整合spring的事务管理器逆向工程mybatis Generator分页插件mybatis pageHelperspringMVC与spring整合springMVC是子容器,控制层框架,放Controller对象。spring是父容器,平台性质的框架,放其他所有对象。子容器持有父容器,可以调用父容器中的bean对象。 整合玩法1(不推荐):所有的bean全部放在springMVC容器对象。可以用,但spr
2020-08-04 23:17:00
211
原创 springMVC_2(restful、异常处理、静态资源、文件上传、拦截器、跨域)
文章目录rest风格接口SpringMVC异常处理静态资源处理文件上传下载拦截器rest风格接口restfurl:描述性状态转移。用来做接口。通过url来定义资源,通过method(get、post、put、delete)来描述动作。涉及到的两个注解@RestController(不常用),定义接口,表示本类中所有的方法都是异步,不用写ResponseBody,不用写ResponseEntity@PathValiable:注解处理器方法的形参,用来获取url中变量值。
2020-08-03 23:17:05
222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人