快速开发环境搭建(docker + portainer)

为什么使用docker

  • 环境隔离困难,易出错

最开始做开发时,会在本机上也部署一些开发所需的组建,比如(mysql、redis、mq等),这样做虽然快速简单,但是一但安装环境出现问题,比如环境、参数修改错误、软件覆盖安装、各版本兼容性问题等,想要完全恢复到安装前的环境非常困难,有时甚至要浪费一上午来调整环境。

  • 环境一致性困难

自己部署的环境很难与测试环境、生产环境完全保持一致,容易产生本机运行良好,但是一上测试环境、生产环境运行出错。

  • 环境迁移困难

自己部署好的环境无法与别人分享,环境搭建时需要重复部署,浪费时间且容易出现环境不一致的问题。

继续阅读快速开发环境搭建(docker + portainer)

在集群环境下,偶尔数据无法取出的问题解决

最近在用户使用系统时,出现偶尔数据无法取出,但有时又正常的奇怪现象。刚开始以为是用户操作是session超时等问题,后来排查代码一直也没有发现问题。就搁置没有处理。

今天在部署新系统时,采用灰度发布的形式。在上线部分机器后查看日志,发现了一些空指针异常。看异常抛出的位置,感觉跟前段时间的问题应该相关。

继续阅读在集群环境下,偶尔数据无法取出的问题解决

illegally attempted to associate a proxy with two open Sessions

最近在做struts2批量上传的时候,遇到了hibernate出现

org.springframework.orm.hibernate3.HibernateSystemException: illegally attempted to associate a proxy with two open Sessions;的问题。并且只能正确保存1个提交对象,其余提交的对象均会保存。
openSessions

继续阅读illegally attempted to associate a proxy with two open Sessions

OS X 在QQ语音时,背景音变小的解决方法

用了近两年的OS X的QQ,一直被在QQ语音或视频时不能看视频或听歌所困扰。后来终于在网上搜到了解决方法:
1. 打开QQ,但是不要视频,或者挂断现有的视频连接。
2. 打开终端,输入
printf “p *(char*)(void(*)())AudioDeviceDuck=0xc3\nq” | lldb -n QQ
3. 然后在视频时背景音量就正常了

为网站开启HTTPS协议

1.为什么要使用HTTPS协议

目前互联网中HTTP是一种非常不安全的明文传输协议,在用户使用HTTP协议访问网站时,其通信数据非常容易被中间人获取。由于传输数据没有被加密、用户数据可以直接被恶意攻击者获取。
使用SSL证书可以有效的保护客户端与服务器间通信内容不被轻易获取。HTTPS加密传输协议通过SSL加密通道对客户端与服务器间数据进行加密后进行传输,即便被人抓包也很难获取其通信内容。

继续阅读为网站开启HTTPS协议

在使用xstream解析xml文件时抛出com.thoughtworks.xstream.io.StreamException: : 前言中不允许有内容 的异常

在使用xstream时解析文件一直都很正常,但是突然有一天部分xml文件解析时,会抛出com.thoughtworks.xstream.io.StreamException: : 前言中不允许有内容 的异常。

1

继续阅读在使用xstream解析xml文件时抛出com.thoughtworks.xstream.io.StreamException: : 前言中不允许有内容 的异常

解决Struts2项目的跨域问题

在开发过程中,可能会遇到需要对Struts2的项目进行跨域访问。Ajax对于远程调用会限制为同域名同端口链接可以进行异步访问。但需要跨域调用时,会出现不能返回数据的情况。

例:通过Ajax请求其他域名的站点,返回错误提示2

在浏览器控制台中会显示报错:

2 继续阅读解决Struts2项目的跨域问题

1.Java内存区域与内存溢出异常

在Java与C语言之间有着一个比较大的区别在于内存划分,对于C语言程序也来说,他们对于内存拥有着绝对的控制权,可以轻易的分配内存和释放内存。但是同时也存在着一些弊端,如在内存使用后没有及时、正确的释放掉空间,很容易造成内存泄漏和内存溢出的问题。这点在Java编程中,内存的分配和释放通过JVM自动分配,在符合垃圾回收的条件下JVM自动释放内存中的垃圾。

Java虚拟机在内存的使用上将所管理的内存空间划分为多个区域,每一个区域有着各自不同的用途。Java虚拟机内存可以分为几大部分,如图。javamemory 继续阅读1.Java内存区域与内存溢出异常

6.在Spring AOP中自动创建代理

在Spring中除了手动配置ProxyFactoryBean之外,还提供了基于BeanPostProcessor的自动代理创建器的实现类,通过匹配一些规则自动在容器中实例化Bean时,为匹配的目标对象生成代理实例。

在Spring中代理创建器一共可以分为三类:

  1. 基于Bean的name规则自动代理创建器
  2. 基于Advisor匹配规则的自动代理创建器
  3. 基于Bean中AspectJ注解标签的自动代理创建器

继续阅读6.在Spring AOP中自动创建代理