自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 读写锁ReentrantReadWriteLock

读写锁ReentrantReadWriteLock是JDK1.5提供的一个工具锁,适用于读多写少的场景,将读写分离,从而提高并发性。读写锁允许的情况:一个资源可以被多个读操作访问,或者被一个写操作访问,但两者不能同时进行。ReentrantReadWriteLock可用于提高某些集合的并发性。仅当集合预计很大时,读线程比写线程多,并且需要用超过同步开销的开销时,使用ReentrantReadWriteLocks通常是值得的。

2023-11-08 12:54:30 152

原创 Java并发编程实践学习笔记(三)——共享对象之发布和异常

(publishing)一个对象的意思是:使对象能够在当前作用域之外的代码中使用。例如,将一个指向该对象的引用保存到其他代码可以访问的地方,或者在某一个非私有的方法中返回该引用,或者将引用传递到其他类的方法中。发布内部状态可能会破坏封装性,并使程序难以维持不变性条件。例如,如果在对象构造完成之前就发布该对象,就会破坏线程安全性。当某个不应该发布的对象被发布时,这种情况就成为(escape)。简而言之,发布就是把对象暴露给他人使用,这就是为什么会需要用到封装;

2023-05-10 16:07:39 752

原创 Java并发编程实践学习笔记(三)——共享对象之可见性

在单线程环境中,如果向某个变量写入值,在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值。然而,当读写操作在不同的线程中执行时,情况却并非如此。通常,我们无法确保执行读操作的线程能适时的看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。运行是没问题的,正常输出42,但不代表这个程序是O看到,在代码中,主线程和读线程都将访问共享变量 ready 和 number。

2023-05-09 17:12:28 672

原创 单例模式之懒汉式

在上篇文章中,我们讲了单例模式中的饿汉式,今天接着来讲懒汉式。

2023-03-10 15:41:36 2812

原创 单例模式之饿汉式

饿汉式单例这种方式简单,也比较常用,在类创建的同时已经创建好一个静态的对象供系统使用,执行效率高。但这种方式下,因为还未调用对象就已经创建,造成资源的浪费,容易产生垃圾对象。

2023-03-06 11:10:55 2765

原创 synchronized用法详解

目录1.线程安全问题2.使用同步机制管理共享数据3.synchronized原理概述3.1 同步代码块的实现原理3.2 同步方法的原理4.synchronized的使用4.1同步代码块 4.2同步普通方法4.3同步静态方法5.synchronized的不可中断性与可重入性5.1 不可中断性5.2 可重入性6.使用synchronized的注意事项6.1注意synchronized同步块的粒度 6.2 对 String 加锁 6.3 对Integer、Long、Short等包装类加锁 线程允许程

2022-06-01 17:06:14 20116 6

原创 在vue-cli4中使用svg文件

笔者安装的vue-cli版本号是4.5.12,本文讲讲述如何在vue项目中使用svg图片文件。 1、安装 svg-sprite-loader svg-sprite-loader 可以将加载的 svg 图片拼接成雪碧图,在页面中通过 <use> 复用:npm i -D svg-sprite-loader 2、创建SvgIcon组件 在components下新建SvgIcon组件,如下图: S...

2021-03-25 15:37:53 821

原创 使用VSCode创建Vue项目

假设Vscode、nodejs、vue-cli等已经安装好了。 1、安装vue插件vetur vetur插件支持vue文件的代码高亮。点击VSCode左边的Extensions图标,输入 vetur ,找对对应版本然后点击install即可: 2、安装ESLint插件 ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工...

2021-03-25 12:28:12 3253 1

原创 Spring Cloud Gateway实现简单的容错限流

路由容错主要通过处理未定义的路由和熔断器来实现。本文主要讲述网关结合熔断器来进行容错限流的处理。 熔断器主要应用在超时、服务器端错误等使用场景中。可以将Gateway和Hystrix集成,通过过滤器配置,加入fallbackUri来实现。因为netflix-hystrix停止更新的缘故,在spring-cloud-gateway-server 2.x版本中,还有HystrixGatewayFilterFactory这个类,但在spring-cloud-gateway-serve...

2021-02-01 18:51:25 2922

原创 linux下部署单机版redis

从Redis官网上看,当前稳定的版本是6.0.10,因此,本文就要在linux服务器上部署该版本的redis。 1、下载redis 进入linux的一个目录,使用以下命令进行下载wget http://download.redis.io/releases/redis-6.0.10.tar.gz 下载完毕之后,进行解压:tar -zvxf redis-6.0.10.tar.gz解压后得到redis-6.0.10文件夹。...

2021-02-01 17:43:01 610

原创 Feign中启用Hystrix实现容错处理

目录Spring Cloud环境在Feign中开启Hystrix添加依赖和配置pom文件application.properties配置实现Hystrix的容错回调测试fallback状态 Hystrix是由Netflix开源的一款容错框架,包含隔离(线程池隔离、信号量隔离)、熔断、降级回退和缓存容错、缓存、批量处理请求、主从分担等常用功能。 Hystrix从以下四个方面来解决服务雪崩问题。隔离(线程池隔离和信号量隔离)...

2021-01-27 20:38:10 5419 2

原创 使用Ribbon和Feign实现客户端负载均衡

等等服务提供者集群 服务中心集群:10.1.12.22:8500,10.1.12.166:8500,10.1.12.58:8500 服务提供者集群:10.1.12.211:8503, 10.1.12.213:8504Ribbon负载均衡器 新建一个Spring Cloud工程。 1、pom文件中引入ribbon依赖 <dependency> <groupId>org.springframewor...

2021-01-27 20:35:56 1094

原创 Consul集群及应用

在Consul的部署及应用中,我们已经懂得了如果在linux服务器上部署单机版的Consul注册中心。今天我们将部署一个具有3个节点的Consul集群。 准备三台linux服务器,在/root目录下创建一个consul目录,把consul_1.8.6_linux_amd64.zip拷贝到该目录下,并且解压。 在Server1中执行以下命令:./consul agent -server -bootstrap-expect 2 -data-dir=data -no...

2021-01-19 09:49:00 1327

原创 Consul的部署及应用

1、consul下载地址consul下载链接下载当前稳定版本consul_1.8.6_linux_amd642、在linux创建文件夹:mkdir /usr/local/consul把安装包放到consul目录下,或使用wget命令在直接下载consul3、使用命令:ifconfig -a查看当前linux服务器的内网地址(私有地址)4、启动consul使用命令./consul agent -dev -client 192.168.0.3结果如下:

2020-11-23 23:33:29 1058

原创 最通俗易懂的KMP算法讲解

字符串的模式匹配是一种常用的运算。所谓模式匹配,可以简单地理解为在目标(字符串)中寻找一个给定的模式(也是字符串),返回目标和模式匹配的第一个子串的首字符位置。通常目标串比较大,而模式串则比较短小。 以上这段关于字符串模式匹配的说明来自于百度百科。字符串的模式匹配最传统的算法就是Brute-Force(暴力)匹配。前缀 指除了最后一个字符以外,一个字符串的全部头部组合;后缀 指除了第一个字符以外,一个字符串的全部尾部组合。...

2020-11-17 15:40:23 805

原创 jmeter之stepping thread group

stepping thread group是jmeter的一个插件,用于阶梯式加压并发。该插件的作用主要是,但目前已经被弃用了。不过得益于它良好的一些界面指标,加压方式仍可选择用来探测性能拐点。目录插件设置场景测试1、单jmeter客户端2、分布式客户端结论插件设置 插件界面如下:This group will start 50threads:设置线程组启动的线程总数为50个;First,wait forNseconds:启动第一个...

2020-08-03 10:02:43 7748 1

原创 win10下离线安装mysql 5.7.29

一、下载MySQL 5.7.29 MySQL5.7.29官方下载地址 下载很慢,这里给一个百度网盘的下载地址: 链接:https://pan.baidu.com/s/113u8ayQI0ARSum22HhlNrg 提取码:3p4n二、配置my.ini文件首先解压mysql压缩包,在mysql-5.7.29-winx64目录下,新建一个my.in...

2020-03-27 09:49:04 1864 1

原创 SpringBoot使用Maven打包——将依赖Jar包与应用Jar包分离

SpringBoot项目使用Maven打包: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>...

2020-03-14 11:07:49 3895

原创 Windows下RobotFramework安装

当前最新版的RobotFramework(以下简称RF)版本号是:1.7.4.1,还不能支持Python3。官方的说法是要等到2.0版本才支持Python3.8,1、安装python2这里选择版本2.7.16。官方下载地址为:https://www.python.org/getit/安装完毕,需要配置一下环境变量PYTHON_HOME: Python的安装目录在Path中添加:...

2020-03-05 23:37:40 225

原创 使用Robot Framework进行接口测试

在robot当中,python语言的接口测试库名称为RequestsLibrary,它依赖于requests测试框架。使用pip命令:pip install -U requestspip install robotframework-requests一、新建一个接口测试工程注意,工程名称只能是英文。如果含有中文,那么在跑用例时会报错。二、创建测试套和测试用例测试套相当...

2020-03-05 23:36:32 4434

原创 jenkins整合postman(三)

本文将讲述如何在Jenkins上集成newman进行postman接口自动化测试。1、在Jenkins上安装NodeJS插件:2、安装NodeJS插件并重启Jenkins后,在全局工具配置中配置NodeJS:3、创建一个自由风格的测试任务,先测试一下newman -v命令是否可以正常调用构建部分使用shell执行以下命令:npm -g install newm...

2020-03-05 14:39:59 346

原创 jenkins整合postman(二)

本文主要讲诉postman的使用。目录一、发送请求二、变量的使用三、测试断言四、构建工作流和批量执行五、newman命令执行用例六、newman常用命令一、发送请求1、发送JSON请求(1)在“headers”添加key:Content-Type , value:application/json(2)body中的'raw''并设定为JSON,并输入...

2020-03-04 23:34:15 497

原创 jenkins整合postman(一)

1、进入到 /usr/local目录cd /usr/local2、下载linux版本的node安装版wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.gz3、解压tar -xvf node-v12.16.1-linux-x64.tar.gz4、重命名重命名为node:mv nod...

2020-03-04 14:43:33 543

原创 使用IDEA开发SpringBoot实现多Module共用配置文件

一般来说,开发一个项目会实现很多个服务接口,以前的做法是可以将全部接口糅合一起对外提供服务,但在现在,越来越提倡微服务理念,这种做法明显与微服务的理念背道而驰。更合理的做法,就是对项目进行服务拆分,使项目被拆分成多个小的服务,而服务采用面向接口的编程,这将极大的有利于项目的扩展和团队分工。 使用IDEA,开发SpringBoot时,可以在一个项目下创建多个Module...

2019-11-24 16:37:40 5216 1

原创 Spring整合CXF实现Web服务

Apache CXF 是Apache旗下一个优秀的 Web服务(WS)开源框架,具备轻量级的特性。CXF可以用来构建和开发 WebService,这些服务可以支持多种协议,比如:SOAP、POST/HTTP、HTTP ,CXF 大大简化了WebService并且可以和 Spring 进行无缝集成。CXF是 Celtrix (ESB框架)和 XFire(webserivice) 合并...

2019-11-13 00:03:37 310

原创 Windows服务器自动化抓取log并上传

最近因为项目有日志审计的需要,需要把多个windows服务器的log每天抓取并自动上传到指定的服务器中。经过查阅相关知识之后,决定采用bat脚本+定时计划任务的方式来实现。一、Window事件日志简介 Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕...

2019-10-21 16:21:33 3253

原创 Win10下Vue.js开发环境搭建

越来越多的项目使用前后端分离的模式进行开发。Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架!vue.js是一套构建用户界面的框架,只关注视图层,Vue有配套的第三方类库,可以整合起来做大型项目的开发。下面就介绍在Win10下的Vue开发环境搭建。 一、安装node.js node.js是什么...

2019-09-16 21:45:47 1417

原创 用SpringMVC实现REST框架

        REST全称是Representational State Transfer(表述性状态转移),它是Roy Fielding博士在2000年写的一篇关于软件架构风格的论文,此文一出,威震四方!国内外许多知名互联网公司纷纷开始采用这种轻量级的Web服务,大家习惯将其称为RESTful Web Services,或简称REST服务。        RESTful可以实现输入的是AJ...

2018-11-28 14:52:10 520

原创 整合Apache httpd与Tomcat,提供web服务

      apache只有处理静态事物的能力,而tomcat的强项就是处理动态的请求。如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制。在测试中,当并发连接较多时,Tomcat就会处于"僵死"状态,对后继的请求连接失去响应。      而且,本次的项目是Jsp + Ajax + Sp...

2018-11-09 09:24:03 2713

原创 Bootsrap学习之模态窗口

       模态窗口在特定时间内用程序强制用户交互。在大部分情况下,它们打开并阻止主窗口的访问,直到模态得以处理。在Bootstrap中,有两种方法可以切换模态框(Modal)插件的隐藏内容:通过 data 属性:在控制器元素(比如按钮或者链接)上设置属性 data-toggle="modal",同时设置 data-target="#identifier" 或 href="#identi...

2018-10-29 18:19:09 664

原创 Android Studio设置,减少对C盘空间的占用

       现在Android开发都使用Android Studio这个IDE。默认安装的AndroidStudio会在C:\Users\用户名\ .xxx 缓存一些数据,主要有四个文件夹,分别是:.android 这个文件夹是Android SDK生成的AVD(Android Virtual Device Manager)即模拟器存放路径 .AndroidStudio 配置、插件缓存文件...

2018-09-26 22:42:48 14332 4

原创 Spring+Mybatis+Mysql整合

Spring+Mybatis+Mysql整合,尽可能减少xml配置。清单1 实体类User.javapackage com.stone.sm.po;import java.io.Serializable;import java.util.Date;public class User implements Serializable{ /** * */ private stat...

2018-06-04 18:19:25 1669

原创 SpringInAction笔记(十一)—— 使用对象-关系映射持久化数据(下)

借助Spring Data实现自动化的JPA Repository        删掉JpaSpitterRepository、JpaSpittleRepository,使用Spring Data编写Repository接口。       看一下SpitterRepository接口        程序清单11.4 借助Spring Data,以接口定义的方式创建 Reposito...

2018-05-21 12:36:11 206

原创 SpringInAction笔记(十一)—— 使用对象-关系映射持久化数据(中)

Spring与Java持久化API        Java持久化API(Java Persistence API,JPA)诞生在EJB 2实体Bean的 废墟之上,并成为下一代Java持久化标准。JPA是基于POJO的持久化机制,它从Hibernate和Java数据对象(Java Data Object,JDO)上借鉴了很多理念并加入了Java 5注解的特性。       在Spring中...

2018-05-20 12:57:05 204

原创 使用 Spring Data JPA 简化 JPA 开发

      本文的示例代码基于 Hibernate EntityManager 开发,但是读者几乎不用修改任何代码,便可以非常容易地切换到其他 JPA 框架,因为代码中使用到的都是 JPA 规范提供的接口 / 类,并没有使用到框架本身的私有特性。示例主要涉及九个文件,但是很清晰:业务层包含一个接口和一个实现;持久层包含一个接口、一个实现、两个个实体类;另外加上两个配置类,一个 JPA 配置文件和一...

2018-05-20 12:41:38 255

原创 SpringInAction笔记(十一)—— 使用对象-关系映射持久化数据(上)

Hibernate       随着应用程序变得越来越复杂,对持久化的需求也变得更复杂。我们需要将对象的属性映射到数据库的列上,并且需要自动生成语句和查询,这样我们就能从无休止的问号字符串中解脱出来。此外,我们还需要一些更复杂的特性:延迟加载(Lazy loading):随着我们的对象关系变得越来越复杂,有时候并不希望立即获取完整的对象间关系。举一个典型的例子,假设在查询一组Purcha...

2018-05-20 11:08:55 329

原创 SpringInAction笔记(十)——通过Spring和JDBC征服数据库

10.1 Spring的数据访问哲学     为了避免应用与特定的数据访问策略耦合在一起,编写良好的 Repository应该以接口的方式暴露功能。图10.1展现了设计数据访问层 的合理方式。       服务对象通过接口来访问Repository。这样做会有几个好处。第一,它使得服务对象易于测试,因为它们不再与特定的数据访问实现绑定在一起。实际上,你可以为这些数据访问接口创建mock实现...

2018-05-20 10:44:59 789

原创 SpringInAction笔记(九)——保护Web应用(下)

9.4 认证用户     在重写configure(HttpSecurity)之前,我们都能使用一个简单却功能完备的登录页。但是,一旦重写了configure(HttpSecurity)方法,就失去了这个简单的登录页面。       不过,把这个功能找回来也很容易。我们所需要做的就是在configure(HttpSecurity)方法中,调用formLogin()。9.4.1 添加自定义的登录...

2018-05-20 10:26:59 233

原创 SpringInAction笔记(九)——保护Web应用(上)

安全性是超越应用程序功能的一个关注点。应用系统的绝大部分内容都不应该参与 到与自己相关的安全性处理中。尽管我们可以直接在应用程序中编写 安全性功能相关的代码(这种情况并不少见),但更好的方式还是将安全性相关的关注点与应用程序本身的关注点进行分离。 Spring Security是一种基于Spring AOP和Servlet规范中的Filter实现的安全框架。9.1 Sp...

2018-05-20 10:17:53 397

原创 SpringInAction笔记(七)—— Spring MVC的高级技术(下)

7.3 处理异常       不管发生什么事情,不管是好的还是坏的,Servlet请求的输出都是一 个Servlet响应。如果在请求处理的时候,出现了异常,那它的输出依然会是Servlet响应。异常必须要以某种方式转换为响应。Spring提供了多种方式将异常转换为响应: 特定的Spring异常将会自动映射为指定的HTTP状态码; 异常上可以添加@ResponseStatus注解,从而将...

2018-05-19 19:46:33 211

JForum2.6.2.rar

1、包含jforum2.6.2的war包、源码包 2、war包可直接放在tomcat的webapps目录下 3、2.6.2版本里面自带汉化功能,在http://localhost:8080/jforum/install.jsp安装时,注意选择中文

2020-03-27

uiautomator源码

uiautomator源代码包

2014-12-03

空空如也

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

TA关注的人

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