SpringBoot(四):与dobbo的整合(注解形式与xml形式)
原文地址:http://blog.****.net/mj86534210/article/details/77941268
userDao
平时项目一直用的ssm+dubbo,现在公司打算采用springboot+dubbo整合,所以就去研究了下。
这里写出两种形式的整合,凭兴趣爱好选择。
一.初始化mysql表:
- DROP TABLE `user` IF EXISTS
- CREATE TABLE `user` (
- `id` varchar(32) NOT NULL,
- `name` varchar(255) DEFAULT NULL,
- `age` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、构建项目
为了测试方便起见,这里使用JPA+H2数据库
项目结构
1、user-api
如果使用JPA,实体上加注解,需要引入
实体类
service类略...
2、user-service(基于注解的实现)
需要添加的依赖
配置文件application.properties
userDao
userServiceImpl
version表示版本号
其他配置,基本和xml中配置一样,只不过这里是写入类里面了
启动类
使用注解的启动类不需要改变
user-service(基于xml实现)
修改dubbo依赖为(现在dubbo更新到了2.5.4还没去试过)
spring-dubbo.xml
启动类
@Service的注解要改成spring的注解
3、web消费者(基于注解)
添加依赖
因为引入了user-pai,所以会引入jpa的jar,springboot是会根据依赖自动去扫描,看是有该配置,如果没有就会报错,
这里为了不在web中引入数据库,需要排除该jar.再或者你在配置文件配置和service一样的
配置文件
这里需要使用@Reference注解,而不是使用@Autowired或者@Resource,当然后面对应的信息也需要和生产者类似
启动入口和servic一样。
web消费者(基于xml)
依赖修改和service一样
配置文件:spring-duubo.xml
Controller层和正常的springmvc一样写法
注入用@Autowired或者@Resource
启动类一样,引入文件就好。
测试
启动zk以后,因为我们没有设置check=false,所以这里先启动生产者,然后在启动消费者进行测试
最后关于热部署的问题。
springboot整合dubbo的时候,如果引入
会报错。可能是jar包冲突引起的,弄了半天没有解决。就换了种方式引入依赖
添加build
启动的时候需要debug启动,才能完成热部署。