- 浏览: 970162 次
- 性别:
- 来自: 北京
-
最新评论
-
菜鸟学生会:
Spring与dubbo分布式REST服务开发实战网盘地址:h ...
Dubbo与Spring的配合使用 -
奔跑的码侬:
基于 Spring + Dubbo 开发分布式REST服务实战 ...
Dubbo与Spring的配合使用 -
卧槽这是我的昵称麽:
...
MyBatis的parameterType和resultMap -
xiongzhe90:
学习中,赞一个
idea14使用maven创建web工程 -
zqb666kkk:
nice 非常好!
jquery form向spring mvc提交表单
文章列表
Spring 初始化2次的问题
- 博客分类:
- 架构和设计
在Spring的使用中,有时初始化一些公共类,比如数据源、常量配置等,这些方法会执行两次,导致程序执行出现异常。
一个解决方法是利用Spring的事件机制,事件机制需要实现ApplicationListener监听器,只要编写一个实现类实现该接口的onApplicationEvent方法,在方法体中初始化应用需要的初始化数据,并做防二次初始化的处理。
此处是一个jedis工厂类的代码:
public class JedisFactory implements ApplicationListener<ApplicationEvent> {
privat ...
使用encode和decode来处理参数传递
- 博客分类:
- web&js
在前端与后端,后端与后端的系统交互中,总是会涉及到传递不同的参数,而参数的值不一,有中文也是英文,有字母也有符号,如果不对参数做处理,直接传递,会导致特殊符号不能解析,中文乱码等问题。
对此一个解决方案就是对要传递的参数,做encode和decode处理。
encode和decode使用方法:
JavaScript:
encodeURIComponent(URIString);
decodeURIComponent(encodedURIString);
Java:
java.net.URLEncoder.encode(str, "UTF-8"); ...
1. 源机器:
把公钥copy到目标机器上
scp ~/.ssh/id_rsa.pub test@192.168.1.135:/home/test/.ssh
2. 目录机器:
把 id_rsa.pub 重命名为 authorized_keys 文件。
sudo mv id_rsa.pub authorized_keys
3. 目录机器修改目录权限:
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
4. 执行完这些步骤后, 就可以在源机器上无密码登录Linux服务器:
...
1. Geospatial Indexing
MongoDB支持二维空间索引,这是设计时考虑到基于位置的查询。例如“找到离目标位置最近的N条记录”。可以有效地作为附加条件过滤。
2. Creating the Index
db.places.ensureIndex( { loc : "2d" } ) // 支持平面位置索引
或
db.places.ensureIndex({loc:”loc_2dsphere"}) // 支持球形位置索引
默认的,Mongo假设你索引的是经度/维度, ...
Linux Shell启动多个Tomcat
- 博客分类:
- 架构和设计
有时部署项目时使用多个应用服务器做负载均衡,这里使用多个Tomcat做负载。
服务器环境: CentOS 6.5
Tomcat目录: /usr/local
Tomcat目录下有tomcat1、tomcat2、tomcat3、tomcat4 四个tomcat实例。
tomcat实例的命名规则: tomcat${i}
1. 新建一个shell文件命名为 tomcat.sh
#!/bin/bash
# Apache Tomcat daemon
#
# chkconfig: 345 10 10
# description: Apache Tomcat ...
Linux以服务方式启动单个tomcat
- 博客分类:
- 架构和设计
1. 下载tomcat
apache-tomcat-8.0.26.tar.gz
2. 传到远程服务器
scp Downloads/apache-tomcat-8.0.26.tar.gz wumart@42.159.80.106:/home/wumart
3. 把tomcat移动到/usr/local目录:
[wumart@dmallsol10007 local]$ sudo mv ~/apache-tomcat-8.0.26 /usr/local/tomcat
4. 解压tomcat
tar -xzvf apache-tomcat- ...
观察者模式和发布/订阅模式的区别
- 博客分类:
- 架构和设计
在事件总线(EventBus)的架构设计中,用到了发布/订阅模式,但发现和观察者模式挺接近,有时容易发生混淆,现试图分清一下他们的关系。
观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内部状态发生变化时,把这个变化通知所有的观察者。
发布、订阅模式的角色为发布者(publisher)和订阅者(subscriber),pub和sub之间没有直接 ...
Sonar的安装与设置
- 博客分类:
- 架构和设计
Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
1. 配置数据库
创建sonar数据库
create database sonar default charset=utf8;
配置 sonar 用户
create user 'sonar' iden ...
win7/8使用curl
- 博客分类:
- lamp & python
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。
下载地址: http://curl.haxx.se/download.html
请选择不带SSL的版本,否则还需要安装SSL的支持包
2. 可以给Windows增加curl命令的环境变量,增加CURL_HOME环境变量,给PATH环境变量加上%CURL_HOME%;
这样就可以在命令窗口的任意目录下使用curl命令了。
3. post 请求:
curl -d "leader ...
动态代理之CGLIB
- 博客分类:
- 架构和设计
CGLIB 介绍
CGLib (Code Generation Library) 是一个强大的,高性能,高质量的Code生成类库。
CGLib 可以在运行时扩展Java类与实现Java接口。CGLib 比 Java 的 java.lang.reflect.Proxy 类更强的在于它不仅可以接管接口实现类的方法,还可以接管普通 ...
同步、异步、阻塞、非阻塞的区别
- 博客分类:
- 架构和设计
同步、异步、阻塞、非阻塞这几个概念在并发编程和架构设计中用的比较多,这里小记一下对他们的理解,先阐释一下他们之间的区别:
同步:多个任务或事件必须顺序执行,前一个任务没执行完,后一行任务就不能进行。
实现:常见的顺序编程, 串行执行
场景:B/S架构的HTTP请求-响应模式、OA流程。
异步:多个任务或事情可以并行执行,任意一个任务的执行不会阻塞另外一个任务的执行。异步调用完成后,通过通知或回调将结果传递给接收者。异步常用于操作时间比较耗时的场合,为了不block当前的工作流程,而采用异步。
实现:新建一个线程,或把任务放到消息队列中由消费者处理、并行处理
场景:发短 ...
MongoDB 介绍
- 博客分类:
- lamp & python
MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB服务端可运行在Linux、Windows或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB,64位平台则非常大。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。
Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能, ...
MongoDB常用操作命令
- 博客分类:
- lamp & python
1. 基本操作
db.AddUser(username,password) 添加用户
db.auth(usrename,password) 设置数据库连接验证
db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb,todb,fromhost) 复制数据库fromdb---源数据库名称,todb---目标数据库名称,fr ...
java模拟post请求
- 博客分类:
- lamp & python
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。
此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpResponse ;
import org.apache.http.client.HttpClient ;
import org.apache.http.client.methods.HttpPost ;
...
NoSql 数据库的部署方式
- 博客分类:
- lamp & python
一、Redis
Redis是一种基于key-value存储格式的nosql数据库,在结构部署上采用了master/slave的方式,其中slave节点起到备份的作用,当master节点出现问题的时候,slave节点可替换成master,从而确保了系统安全稳定的特性。
分布式存储单元:slot(一组key/value存储记录的集合)
一个cluster里面可能会有多个matser节点,master节点通过互相通信来记录彼此之间所存储的slot信息,从而确保了client 端可以通过任何master节点定位到需要的slot,获取到slot信息后,client端还会将该slot地 ...