基于反射机制实现动态操纵 JavaBean

分享一个基于反射机制实现的动态操纵 JavaBean 的工具类

阅读更多

nginx 防盗链配置

以图片资源为例

1
2
3
4
5
6
7
8
9
10
11
12
13
location ~ \.(gif|jpg|jpeg|png|ico)$ {
valid_referers none blocked fanlychie.com www.fanlychie.com;
if ($invalid_referer) {
return 403;
}
expires 7d;
}

来路是 fanlychie.com 或 www.fanlychie.com 的请求图片正常显示

如一个 http://aabb.com 的站点发起一个 http://fanlychie.com/aabb.png 的请求,nginx 会拒绝

该请求,并给它返回 403 状态码,在 http://aabb.com 站点看到的图是一个破图

阅读更多

nginx 负载均衡配置

配置文件的位置:/usr/local/nginx/conf/nginx.conf

user

1
#user www www;

nginx 运行的用户和用户组,默认为 nobody

阅读更多

nginx 安装

nginx 是一个高性能的 HTTP 和反向代理服务器,它具有很多非常优越的特性,支持高并发和高效的负载均衡,目前,包括百度、新浪、网易、腾讯等知名网站已经开始使用 nginx 作为 WEB 应用服务器。

安装环境

阅读更多

SolrJ 的运用

SolrJ 是操作 Solr 的 Java 客户端,它提供了增加、修改、删除、查询 Solr 索引的 Java 接口。SolrJ 针对 Solr 提供了 REST 的 Http 接口进行了封装, SolrJ 底层是通过使用 HttpClient 来完成 Solr 的操作。

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<dependencies>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
</dependencies>

阅读更多

Solr solrconfig.xml 配置

luceneMatchVersion

1
<luceneMatchVersion>5.2.0</luceneMatchVersion>

solr 底层使用的 lucene 版本

阅读更多

Solr IKAnalyzer 中文分词配置

下载 IKAnalyzer-2012FF_hf1_support_solr5.jar,并将它放到 solr 应用的 WEB-INF / lib 目录下

打开并编辑 $SOLR_HOME 下的 schema.xml 配置文件,加入如下配置

1
2
3
4
5
6
7
8
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />
</analyzer>
</fieldType>

阅读更多

Solr schema.xml 配置

schema

1
<schema name="core1" version="1.5">
参数 描述
name schema 的名称,仅用于展示
version solr 的 schema 语法的版本号

阅读更多

Solr 环境搭建

Solr 是一个独立的企业级搜索应用服务器,基于 Lucene 的全文搜索服务器。同时对其进行了扩展,提供了比 Lucene 更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

安装环境

  • CentOS 6.5

  • Solr 5.2.0

  • JDK 1.7

  • Tomcat 7

阅读更多

ActiveMQ与Spring集成

1. ActiveMQ发送和接收消息

生产者示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Producer {
public static void main(String[] args) throws Exception {
// 连接工厂
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.139.129:61616");
// 创建一条连接
Connection conn = factory.createConnection();
// 启动连接
conn.start();
// 创建会话
Session session = conn.createSession(true, Session.AUTO_ACKNOWLEDGE);
// 发送目的地
Destination destination = session.createQueue("TEST.QUEUE");
// 消息生产者
MessageProducer producer = session.createProducer(destination);
// 持久化(MQ重启后消息不会丢失)
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
// 文本内容消息
TextMessage message = session.createTextMessage("=== Hello ActiveMQ ===");
// 发送到目的地
producer.send(message);
// 提交事务
session.commit();
// 关闭连接
conn.close();
}
}

阅读更多

RabbitMQ 安装

RabbitMQ是基于Erlang编程语言实现的一个高并发高可靠的AMQP消息队列服务器。安装RabbitMQ需要首先安装依赖的Erlang语言环境。

阅读更多

ActiveMQ 安装

1. 安装

官网下载应用安装包 apache-activemq-5.15.2-bin.tar.gz。解压缩就可以直接用:

1
$ tar zxvf apache-activemq-5.15.2-bin.tar.gz

1.1 端口

端口 描述
8161 默认的控制台管理服务端口
61616 默认的JMS服务端口

阅读更多

定时任务

实现方式一:Timer

schedule 示例清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
public static void main(String[] args) {
// 从现在开始, 此后每隔 3 秒执行一次任务
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("execute task");
}
}, 0, 3 * 1000);
}
}

阅读更多

图形验证码

阅读更多

memcached 客户端

常用客户端一:memcached java client

1
2
3
4
5
<dependency>
<groupId>com.whalin</groupId>
<artifactId>Memcached-Java-Client</artifactId>
<version>3.0.2</version>
</dependency>

阅读更多