SpringCloud3:服务消费者feign

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

Feign整合了Ribbon和Hystrix。
Continue reading

SpringCloud2:服务消费者Ribbon

Ribbon是一个负载均衡客户端。

本文基于上一篇文章的chapter1工程,命名为chapter2工程。
如果需要保留chapter1,可以复制chapter1工程(只复制src和pom.xml),将文本中的chapter1的pom.xml总的工程名改成chapter2。
一、启动Eureka服务
1、先启动EurekaServer工程(端口8900)。
2、启动EurekaClient工程(端口8922)。
3、修改EurekaClient工程application.properties中的端口为8923,再次启动工程。
如果Eclipse下无法Run As SpringBoot App两次,可以在Application启动类上Run As Java Application启动一次。
Continue reading

Java JDBC连接Hive使用POI多线程写入Excel文件

背景:最近需要对比两个系统的差异数据,用到了BI部门的Hive。由于对比项比较多,并且后续要持续关注是否有差异项,就把生成差异结果的步骤用Java代码实现了,以避免逐个执行、导出。
用到的技术:JDBC、POI、多线程

https://github.com/baijy/JavaToHive
做成了一个独立的maven工程,maven仓库下载不了的jar包可到csdn下载,地址:

http://download.csdn.net/download/mrbjy/9971112

Spring整合RabbitMQ实例

2018年6月28日更新,基于JDK1.8

一、创建Maven工程
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelversion>4.0.0</modelversion>
    <groupid>com.jianyu</groupid>
    <artifactid>spring-rabbitmq</artifactid>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <!-- spring版本号 -->
        <spring .version>4.3.14.RELEASE</spring>
        <!-- log4j日志文件管理包版本 -->
        <slf4j .version>1.6.6</slf4j>
        <log4j .version>1.2.12</log4j>
        <!-- junit版本号 -->
        <junit .version>4.10</junit>
    </properties>

    <dependencies>
        <dependency>
            <groupid>org.springframework</groupid>
            <artifactid>spring-core</artifactid>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupid>org.springframework</groupid>
            <artifactid>spring-context</artifactid>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupid>org.springframework</groupid>
            <artifactid>spring-context-support</artifactid>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupid>org.springframework</groupid>
            <artifactid>spring-aspects</artifactid>
            <version>${spring.version}</version>
        </dependency>

        <!--rabbitmq依赖 -->
        <dependency>
            <groupid>org.springframework.amqp</groupid>
            <artifactid>spring-rabbit</artifactid>
            <version>1.3.5.RELEASE</version>
        </dependency>

        <!-- 日志文件管理包 -->
        <!-- log start -->
        <dependency>
            <groupid>log4j</groupid>
            <artifactid>log4j</artifactid>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupid>org.slf4j</groupid>
            <artifactid>slf4j-api</artifactid>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupid>org.slf4j</groupid>
            <artifactid>slf4j-log4j12</artifactid>
            <version>${slf4j.version}</version>
        </dependency>
        <!-- log end -->

        <!--单元测试依赖 -->
        <dependency>
            <groupid>junit</groupid>
            <artifactid>junit</artifactid>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Continue reading

Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

一、数据库相关准备
1、创建表

1
2
3
4
5
6
7
8
CREATE TABLE `t_user` (  
  `USER_ID` int(11) NOT NULL AUTO_INCREMENT,  
  `USER_NAME` char(30) NOT NULL,  
  `USER_PASSWORD` char(10) NOT NULL,  
  `USER_EMAIL` char(30) NOT NULL,  
  PRIMARY KEY (`USER_ID`),  
  KEY `IDX_NAME` (`USER_NAME`)  
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

2、插入数据

1
2
3
4
5
6
7
8
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (1, '包子哥', '1234567@', '15542746@qq.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (2, '令狐冲', '123', 'linghuchong@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (3, '萧峰', 'cadg', 'xiaofeng@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (4, '张翠山', 'cscs', 'zhangcuishan@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (5, '郭靖', 'csas', 'guojing@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (6, '小德', 'yuh78', 'fdfas@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (7, '小小', 'cvff', 'fsaf@126.com');
INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (10, 'apple', 'uih6', 'ff@qq.com');

Continue reading

ActiveMQ HelloWorld实例

一、下载ActiveMQ
http://activemq.apache.org/download.html

二、启动ActiveMQ
运行bin目录下的activemq.bat即可,此例用到的是61616端口和8161端口

注意:
ActiveMQ对JDK版本有要求,最新版ActiveMQ 5.14.4与JDK1.6是不兼容的,此时ActiveMQ端口无法启动,本地代码亦无法运行,报错:Unsupported major.minor version 51.0。
因此要成功运行代码要么升级JDK版本,要么使用旧版本的ActiveMQ。
以下代码测试使用的是JDK1.6和ActiveMQ 5.0.0,这是第一个带有web控制台的版本(http://localhost:8161/admin/)。
Continue reading