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

Spring事务管理——声明式事务(基于注解)

文章摘要:
演示Spring的事务管理,使用基于注解的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与切面方式的区别:无需定义增强、配置切点和切面。

附总结:

Spring事务4种方式比较
类型 配置关键点 缺点
原始方式 1、注入顺序:连接池→事务管理器→事务管理模板→ServiceImpl类 2、在ServiceImpl类中调用transactionTemplate实例的execute方法,重写doInTransactionWithoutResult方法 对ServiceImpl有侵入编码,工作量大,不灵活
声明式事务(原始方式) 1、创建代理对象,目标对象为ServiceImpl类的bean,注入事故管理器,设置属性 2、在Test类中注入代理对象,通过代理对象执行ServiceImpl类的方法 需要为每一个管理事务的类生成代理,需要为每个类都需要进行配置
声明式事务(基于切面、拦截器) 1、 通过在方法上定义增强 2、 通过定义切点和切面
声明式事务(基于注解) 1、通过开启注解的事务管理 2、在实现类上使用@Transactional开启事务

Continue reading

Spring事务管理——声明式事务(基于切面)

文章摘要:
演示Spring的事务管理,使用基于切面的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与原始方式的区别主要是不对某个类的某个方法设置事务,而是定义切面,可以对类的所有方法生效。
Continue reading

Spring事务管理——声明式事务(原始方式)

文章摘要:
演示Spring的事务管理,使用原始的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与手动编码方式的区别主要是修改了applicationContext.xml的配置,注入代理类对象,减少了对service方法的侵入。
Continue reading