- 博客(34)
- 收藏
- 关注
原创 portainer管理Docker swarm集群
Centos7 部署情况:ip1 managerip2 worker1在manager上面部署portainer,访问ip1:9000后,选择remote,配置Docker时,输入ip1:2377,连接失败!使用命令docker logs portainerId查看错误提示:http error: Unable to ping Docker environment (e...
2019-12-19 16:27:00
572
原创 多进程模式下php的单例模式
Java中对static修饰的类变量可以保证整个应用中只有一份变量,而在php中由于其多进程模式,导致static修饰的类变量并不能保证只存在一份。 每一个http请求,都会创建一个进程来处理,所以每个进程中都会有一个static修饰的类变量,并且进程间是不共享数据的。所以当我们的php应用需要确保整个应用中只有一份时,使用static修饰的静态类变量无法做到。只能借助第三方存储比如red...
2018-12-10 21:08:22
1219
原创 mac上Docker挂载目录
在mac上面使用Docker挂载目录时,需要先在Docker->preference中添加该目录,才能进行挂载!
2018-04-10 13:49:58
7890
原创 Spring Boot使用RabbitMQ出现诡异异常:Failed to send reply with payload 'OK',Cannot determine ReplyTo message
今天项目中出现一个诡异的异常:org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContain...
2018-03-15 17:29:54
12472
5
原创 svn提交重命名文件失败得劲解决方法
当本地修改了文件名,或者删除了文件,svn直接commit提交会失败,报错:'filename' because it was moved from 'filename' which is not part of the commit; both sides of the move must be committed together,这时,只需要再提交的时候提交文件夹或者把删除的文件一起提交即可...
2017-12-14 17:51:55
4158
原创 linux和mac环境下sed命令区别
sed命令在mac环境下,与linux有点不一样:1,需要在sed命令后面加上''引号2,添加的文本需要换行,必须在文本后面加上\且按回车才有换行的效果!
2017-11-06 14:38:40
3081
原创 Spring Boot学习(1)—— mac上Intellij使用Gradle构建Spring Boot项目,并使用Groovy
首先,需要自己下载Intellij、Gradle、Groovy。 1,Intellij创建项目,选择Spring Initializr,然后next 2,设置group、artifact,Type选择Gradle Project,Language我选择的是Groovy,使用Java就选择Java,然后next 3,选择需要的组件,我新建的是一个web项目,所以勾选了...
2017-09-22 10:59:33
1831
原创 执行shell脚本时,遇到需要输入yes/no的时候,怎么自动化完成输入呢?
直接在命令后面加-y即可!比如:yum -y install xxx、yum -y update。
2017-08-18 18:49:04
25454
1
原创 ThreadLocal详解
ThreadLocal为每一个使用该变量的线程提供一个变量副本,每个线程可以独立操作变量副本而不会对其他线程产生干扰和冲突,在线程中使用ThreadLocal得到变量副本来使用。这样多个线程就不会因为竞争使用一个变量而被阻塞影响性能!这样就隔离了多个线程对数据的数据共享!但是ThreadLocal是耗费内存来提高性能的!ThreadLocal为每个线程保存了变量的副本,这样每个线程在使用变量时
2017-08-02 17:34:46
465
原创 细说HTTPS
之前,我们在网络中的信息传输一直使用明文的方式,没有任何加密措施,坏人很容易就看到了传输的信息。之后,人们想到了使用加密的方式。1,对称加密:最初使用对称加密,双方约定使用同一个密钥,发送方使用密钥加密后发送,接收方接收到加密后的消息,然后使用同一个密钥进行解密,但是这有一个隐患,双方在约定密钥的时候,发送密钥时,坏人可以截获这个密钥,从而将拦截的信息解密,所以人们发现,双方使用同一个密钥很容...
2017-07-28 18:29:01
284
原创 MySQL之聚簇索引
通过聚簇索引得到的三个建议:1,每个InnoDB的表有一个特殊的索引:聚簇索引,存储了行的数据。通常聚簇索引就是指的主键索引,即InnoDB会用有主键的每张表的主键PRIMARY KEY创建聚簇索引,索引的每个节点保存了行数据,如果没有PRIMARY KEY主键,InnoDB则选择第一个UNIQUE NOT NULL的键用作创建聚簇索引,如果UNIQUE NOT NULL的键也没用,则 I
2017-07-26 11:51:39
411
原创 Spring boot之读取自定义配置文件
1,定义配置文件mypro.properties#自定义配置base.redis.url=localhost:434342,在启动类上加上配置注解:@PropertySource("classpath:mypro.properties")public class Application {}这是定义要读取的properties文件的位置,另外,假如只读取该文件中的
2017-07-19 14:24:00
2516
原创 Spring boot之使用Junit测试
1,pom.xml引入junit依赖dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-testartifactId> scope>testscope>dependency>2,编写测试类@RunWith(SpringJUnit4Cl
2017-07-19 14:18:38
6381
原创 Spring boot之使用Druid并配置SQL监控
1,pom.xml文件中引入Druid依赖dependency> groupId>com.alibabagroupId> artifactId>druid-spring-boot-starterartifactId> version>1.1.1version>dependency>2,application.properties中配置druid参数
2017-07-19 10:57:05
3615
原创 二叉查找树(二叉排序树)Java实现
package com.demo;/** * 二叉排序树(查找树) */public class BiTree { private BiNode root; public void insertNode(int data){ BiNode node = new BiNode(data, null, null); if(root == null){
2017-05-16 18:28:16
405
原创 MyBatis之缓存(一级缓存、二级缓存)
1, MyBatis的解析MyBatis的解析工作由XmlConfiguraBuilder类来实现的,它将MyBatis的所有配置信息解析到Configuration中,为之后的使用提供支持。2, MyBatis的一级缓存MyBatis的一级缓存是SqlSession级别的缓存,每个SqlSession都有一个以及缓存。我们在对数据库进行操作时,会创建一
2017-05-12 20:25:01
1042
原创 远程服务调用之RMI、Hessian、Burlap、Spring的HTTPinvoker
RMI:在服务端,使用RmiServiceExporter把POJO包装到RMI服务适配器中,并将服务适配器绑定到RMI注册表中,从而将POJO转换为RMI服务,在客户端,RMI服务将远程服务使用一个代理装配进来,使得我们可以像使用本地服务一样使用远程服务;它使用二进制协议,使用Java标准的对象序列化机制,只能服务于Java服务。Hessian、Burlap:Hessian和Burlap一样
2017-05-10 17:23:10
517
原创 Spring消息(2)之AMQP(RabbitMQ)
上一篇博客粗略地说了一下AMQP,它是一个二进制传输协议,基于AMQP的消息模型,比JMS的功能更加丰富,提供了不局限于点对点和发布-订阅等多种模式。这一篇讲的是AMQP的实现:RabbitMQ,以及在Spring中的支持。RabbitMQ是一个开源的消息代理,它实现了AMQP,而Spring AMQP为RabbitMQ提供了支持,包括了RabbitMQ连接工厂,模板以及Spring配置命名空
2017-05-09 10:10:29
477
原创 AMQP浅谈
AMQP,高级消息队列协议(Advanced Message Queuing Protocol),是一个异步消息传递所使用的应用层协议规范,和JMS不同,JMS是一组API,而AMQP是一个规范,是一个二进制协议。AMQP采用了分层的协议架构,共分为三层,包括Model Layer、Session Layer、Transport Layer,Model层定义了基本域模型(exchange、
2017-05-09 09:48:51
608
原创 Spring消息(1)之 JMS
主要有两个用户:1) 程序之间的通信,当其中一方出现问题之后,消息会丢失,所以我们把消息放到消息队列中,接收方任何时候都可以接收消息,不会丢失;2) 用户注册流程一般包括:插入用户数据到数据库,发送激活邮件到用户邮箱等一列操作,当用户点击注册之后,等到后台一系列都完成之后才响应,这会大大影响操作体验,所以我们需要采用异步消息。JMS(Java Message Service),是一个J
2017-05-08 10:56:47
507
原创 spring test测试javaweb项目
当我们的组件都交由spring来管理之后,测试就变得相当困难,比如运行项目,使用浏览器哎进行测试,但是每次修改都得重启tomcat,相当麻烦。这里使用spring test来进行测试,这里介绍最简单的实践。1,加入jar包依赖2,编写测试类3,加入RunWith注解,使用SpringJUnit4ClassRunner4,配置文件我的目录结构是这样的,所以这样
2017-04-16 16:57:55
1954
原创 Spring实践之AOP一异常处理和日志处理
使用Spring的项目中,利用好Spring核心之一:AOP能够帮助我们解耦代码,而且还能完成很多其他工作,这里要说的就是异常处理和日志打印。在我们的正常流程程序中,需要有日志处理和异常处理,但是每个方法不可能都写一套处理的代码,所以我们可以借助AOP来实现处理的功能!但是有一个缺点就是通过AOP处理日志时,只能处理前后的日志,对于正常代码中间的日志没办法解决!我们首先编写一个切面,定义用
2016-12-03 17:16:34
490
转载 linux服务器启动tomcat很慢解决方法
有两种解决办法:1)在Tomcat环境中解决可以通过配置JRE使用非阻塞的Entropy Source。在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。2)在JVM环境中解决打开
2016-10-15 00:51:15
12774
原创 linux安装配置Redis及Redis集群
首先,安装Redis之前需要安装gcc:yum install gcc-c++。1,下载redis的源码包2,把源码包上传到linux服务器3,解压源码包:tar -zvxf redis-3.0.0-tar.gz4,make5,make installPREFIX=/usr/local/redis:指定安装目录这样就可以了。接下来启
2016-10-15 00:21:29
2089
原创 linux服务器搭建solr服务
1,安装jdk,安装tomcat2,把solr-4.10.3.zip包解压,有一个solr-4.10.3.war,就是一个web工程!3,把solr安装到tomcat中去:把dist目录下的solr-4.10.3.war包拷贝到tomcat下的webapps中去!改名为solr.war!改名不是必须的,只是为了方便访问!!!:Ip:8080/solr/即可访问。4,解压war包启动to
2016-10-15 00:02:11
1289
原创 ajax访问后台后前台永远执行error的回调函数
这是因为在jquery1.1之后要求后台返回的json严格遵循json格式,比如:response.getWriter().println("{\"result\":true}");
2016-07-17 13:22:28
774
原创 Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost
使用eclipse的时候出现这个问题:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be usi
2016-07-17 13:19:14
21201
5
原创 退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!
如何实现: 一,不能直接进入页面或者直接访问servlet,必须通过页面点击的方式!即不能直接输入url/页面地址进入页面,这是为了防止在登录的情况下,直接输入url/页面地址访问登录成功后的页面! * 只需要在拦截器中获取referer头:request.getHeader("referer")。 > 如果为null,表示是直接输入url/页面地址进入的!这是就直接跳转
2016-07-16 22:53:03
5843
原创 java中util.Date和数据库中datetime的操作!
需求: User对象里面有java.util.Date的birthday,mysql数据库中是datetime,当我们需要存入数据库或从数据库中取出来时,有一些细节必须注意!因为直接将java.util.Date存入数据库是不行的! 为了测试,我还在表中加了一个time的字段,类型为varchar。存入数据库: 加入我们直接将birthda
2016-06-07 21:35:13
16913
4
原创 jsp页面从session和request域中取数据小结
一、从request中取 request.setAttribute("test", "hello"); 1,el表达式: 2,jstl:${test }或${requestScope.test}因为直接去是默认request对象中的数据:requestScope二、从session中取 request.getSession().setAttrib
2016-05-09 12:44:30
5726
转载 Hibernate常见异常
hibernate 常见异常net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文件出现错误。 当出现net.sf.hibernate.MappingException: Resource:
2016-05-03 21:29:58
2289
原创 使用hibernate出现的一个异常org.hibernate.PropertyAccessException: Null value was assigned to a property of pr
exception org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.shjob.hibernate.vo.InUser.ageorg.hibernate.property.BasicPropertyAccessor$B
2016-05-03 10:24:30
1149
原创 tomcat配置虚拟目录
最近写的程序需要添加上传图片功能。但是呢,图片一般都不能保存到tomcat目录下,所以需要把上次的图片保存到tomcat外的目录。但是jsp页面是不能引用服务器目录外的图片的!就是说程序在运行时是不能访问服务器外的目录的,这时就需要配置tomcat的虚拟目录了!需要在硬盘上(tomcat目录外)选择一个地方来存放图片,然后把这个目录配置给tomcat虚拟目录。1,在D盘建一个名
2016-04-29 22:21:50
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人