- 博客(28)
- 资源 (6)
- 收藏
- 关注
原创 基于redis的分布式锁
使用场景系统使用过程中有如下情况:对某一个变量进行加/减等操作时,如果同一时间有多个线程对该变量进行操作,会出现变量值重复的情况。如:@PostMapping("/testSync")public void testSync(){ flag--; System.out.println(flag);}在1S之内模拟发起100个请求,执行结果可能会出现如下情况:库存超...
2020-02-21 14:54:28
286
1
原创 java静态代理与动态代理
在学习Mybatis的时候,发现使用了动态代理。在使用Mybatis的时候,我们可以只定义一个XxxMaper接口,然后直接利用这个接口定义的抽象方法来进行增删改查操作,Mybatis内部实际上利用了动态代理技术帮我们生成了mapper接口的代理类。Mybatis的插件也是用动态代理和责任链来实现的。什么是代理模式?代理模式又叫委托模式,是为某个对象提供一个代理对象,并且由代理对象控制...
2020-01-17 13:50:42
194
原创 LeetCode
1. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。class Solution { public boolean isValid(String s) { HashMap<String,...
2020-01-14 10:46:04
248
原创 jenkins+私服git+docker构建和部署springboot项目
一、jenkins介绍与安装Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。CI全名Continuous Integration,就是我们经常听到的持续集成概念。CD全名是Continuous Deployment,是持续部署。1.1 安装安装jenkins之前,首先需要安装jdk。添加官方软件仓库的秘钥到本地的apt秘钥中:...
2020-01-10 16:37:04
529
原创 数据库分库分表
一、为什么需要分库分表?随着业务越来越大,表的数量越来越多,单表数据量越来越大,受单台服务器资源(CPU、内存、磁盘IO)的限制导致响应时间越来越长,按正常来说,一个查询语句超过1秒就属于慢SQL,为了提高数据库的效率、缩短响应时间,有以下几个优化方案:sql + nosql,将读多写少的数据放入nosql中,比如redis,将数据放入内存中,减少磁盘IO;优化sql语句,加索引;读写分...
2019-12-21 14:17:11
467
原创 主从数据库复制+Springboot项目中配置主从数据库读写分离
一、主从复制:允许将一个数据库服务器(主数据库)的数据复制到一个或多个数据库服务器中(从数据库)。1.1 主从复制的好处:(1)作为备份数据库,当主数据库出现问题时,可以切换到从数据库继续工作;(2)读写分离,主库写,从库读,降低主数据库的压力;(3)可以在从数据库上备份,不影响主数据库的性能。1.2 主从复制的原理:(1)主数据库中的所有操作,都被记录在数据库二进制日志文件中;(...
2019-11-19 14:18:26
5893
2
原创 Mybatis
一、本质最开始,java通过JDBC访问数据库,现在可以用Mybatis替换JDBC连接数据库。Mybatis连接数据库必备的几个组件:
2019-11-18 17:03:40
177
原创 Ubuntu 修改用户名
ubuntu系统中将用户名test改为test1。** 注意:首先将当前登录用户切换为root或其他用户,否则在第二步中会出现密码不正确的提示。**su - root1. 修改 /etc/passwd用户信息文件vim /etc/passwd将test改为test12. 修改 /etc/shadow用户密码文件将test改为test13. 修改 /etc/group用户组文件...
2019-10-28 11:31:38
2536
2
原创 ubuntu安装ftp
1. installsudo apt-get install vsftpd2. 配置文件详解sudo vim /etc/vsftpd.conf内容为:listen=NOlisten_ipv6=YES# 控制是否允许匿名用户登入,YES为允许匿名登入,NO为不允许,默认yesanonymous_enable=NO #控制是否允许本地用户登入,YES为允许本地用户登入,NO...
2018-11-28 11:49:33
233
1
原创 ubuntu安装ELK
一、Java环境Elasticsearch是用Java语言编写的,所以首先确保机器上已经安装了Java环境。官方文档指出,至少需要Java 7,本文中使用java8。二、下载Elasticsearch在官网https://www.elastic.co/downloads/elasticsearch下载安装包,本文下载的是elasticsearch-6.4.3.tar.gz,将下载的安装包上传...
2018-11-23 11:12:51
2958
原创 RabbitMq安装与配置
1. 安装1.1 添加源echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list1.2 新增公钥(不加会有警告)wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key....
2018-11-11 16:27:02
392
原创 Ubuntu服务器安装gitolite
一、安装git、sshopen-server、sshopen-clientsudo apt-get updatesudo apt-get install git openssh-server openssh-client二、将本地公钥文件上传到服务器windows下公钥文件地址:C:\Users\zhangyu\.ssh将上面路径下的id_rsa.pub文件上传到服务器/tmp路径下...
2018-10-24 19:12:50
523
原创 docker
mvn打包:mvn clean package -Dmaven.test.skip=truedocker构建映像:mvn clean package -Dmaven.test.skip=true docker:build停止所有容器:docker stop $(docker ps -aq)查看正在运行的镜像:docker ps运行镜像:docker run -p 8761:8761...
2018-07-21 12:19:28
175
原创 Spring Boot Admin【Finchley 版】
(一) Spring Boot Admin介绍Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。 但是Actuator的监控也有一些问题:第一,所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口;第二,如果Spring Boot应用集群...
2018-07-09 15:02:03
2161
原创 Spring Security
一、Spring Security基本原理1. SecurityContextPersistenceFilter2. 认证过滤器3. FilterSecurityInterceprot4. ExceptionTranslationFilter二、认证流程三、 用户认证的处理1. 用户信息的获取逻辑2. 用户校验逻辑3. 密码加解密四、 自定义登陆功能五、添加记...
2018-06-27 17:05:04
247
转载 Hystrix DashBoard监控面板【Finchley 版】
转载:[https://windmt.com/2018/04/16/spring-cloud-5-hystrix-dashboard/]一、项目创建1、创建Spring Boot 工程,命名为:hystrix-dashboard,引入如下依赖<dependency> <groupId>org.springframework.cloud</group...
2018-06-08 19:07:24
4213
1
原创 Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead.
springboot项目中访问数据库提示 Cannot resolve com.mysq.jdbc.Connection.ping method. Will use ‘SELECT 1’ instead.造成的原因:druid和mysql的版本不兼容
2018-05-30 16:24:23
3680
原创 远程连接windows服务器时提示:要求的函数不支持
远程连接服务器时提示下面图片中的问题: 解决办法: 打开注册表, 将\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters路径下的AllowEncryptionOracle的值改为2。 如果该路径下的某个项找不到,新建即可。 新建数值名称Allow...
2018-05-18 14:48:56
6820
转载 windows下tomcat运行时出现java.io.IOException: 您的主机中的软件中止了一个已建立的连接
问题原因及解决: 在tomcat中出现这个错误是由于客户端在发送请求后,还没等服务器响应就断开了连接,有可能是因为网络原因,突然网断了,但是如果错误频繁出现的话,可能就是服务端的问题了。 tomcat中配置了一个连接超时时间connectionTimeout,如果在这个时间之后客户端还未得到服务器端的响应的话,就会主动断开连接,这样就会出现上述异常了,tomcat中默
2017-11-01 14:34:13
2518
原创 jsp页面获取map集合的指定key的value
<c:forEach items="${old_cy }" var="old"> <tr><td>${old.key }</td><td>${old.value }</td> <td>${new_cy[old.key] }</td></tr></c:forEach>先通过[key]来取得指定key所对应的value
2017-09-08 10:07:11
10213
原创 mybatis查询结果为Map类型
1.mapper.xml<select id="findYwmsid" resultType="java.util.Map"> select DISTINCT(yid) AS "yid",sd.label AS "name" from qk_yw_ywms </select>2.DaoList<Map<String,String>> findYid();3
2017-08-10 16:01:37
1847
原创 Git命令 未完结
一、在客户机上生成公钥和私钥$ ssh-keygen -t rsa -C "youremail@example.com"生成的文件存放在用户目录的.ssh目录下,默认文件名为:id_rsa(私钥),id_rsa.pub(公钥)。二、设置/修改名称与邮箱:$ git config --global user.name "yourname"$ git config --global user.emai
2017-08-10 15:29:09
389
原创 在eclipse中执行team->pull出现the current branch is not configured for pull
今天在github修改文件之后想同步到本地工程,在eclipse中点击team–>pull时出现如下提示: 解决方法: 打开所在仓库的.git文件夹,修改config文件,加入如下参数:[branch "master"] remote = master merge = refs/heads/master [remote "master"] ur
2017-07-26 13:26:31
1074
原创 阿里云服务器部署mysql、tomcat、jdk
使用的远程连接工具SecureCRT。一、mysql1.如果是第一次开启,需要更新一下。root@iZwz98t5oy5hkarmcng9qnZ:~# sudo apt-get update2.安装mysqlroot@iZwz98t5oy5hkarmcng9qnZ:~# sudo apt-get install mysql-server mysql-client3.安装过程中,会有两次输入用户名和密
2017-04-30 13:37:26
895
原创 解决oracle数据库乱码问题
安装oracle客户端之后,查询数据库中表的信息,中文都会变成?解决方法: 设置环境变量, 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK确定之后,重启软件。
2016-12-06 15:39:33
280
原创 文件上传和文件下载
文件上传:1.首先,设计前台页面。要在form表单中加上 enctype="multipart/form-data",指明接收请求的Servlet。<form action="upload" method="post" enctype="multipart/form-data" > <span>上传文件</span><input type="file" name="filename" value
2016-08-30 19:34:30
320
原创 登录功能的开发(带验证码)
1.因为要和数据库进行连接,先获取数据源,创建连接对象。这些操作在工具类中完成。public class DbUtil { private static DataSource ds=null; //创建连接池 static{ Properties p = new Properties(); try { p.load(Db
2016-08-28 19:53:59
612
SSH整合jar包--spring4.1.5 hibernate4.3.1 struts2.2.1
2017-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人