idea工具中搭建DUbbo的实例(超级详细)(下)

简介: 之前一直做spring boot框架,mybatis做持久层,mysql做数据库,搭建环境时,各种问题,不是数据库没连上,就是mapper文件未扫描成功,这次就着搭建dubbo项目,总结一下。

5、在启动类上加注解


(1)@SpringBootApplication 启动类注解


(2)@EnableDubbo  dubbo注解


(3)@MapperScan("com.bdqn.doubbleuserprovider.mapper")该注解指向mapper包,没有或者错误会报:我也是踩了。

//Field ud in com.bdqn.doubbleuserprovider.service.UserServiceImpl
// required a bean of type 'com.bdqn.doubbleuserprovider.mapper.UserDao' that could not be found.

6、在pom文件中,还需要进一步的配置,在build内部加资源配置:

 <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.html</include>
                    <include>**/*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>

否则会报下面错误:

Invalid bound statement (not found):

三、消费者操作

1、由于消费者不需要操作数据库,所有只需要引入dubbo,web和公共组件即可。与provider的依赖一致。

2、配置文件application.properties中,这次扫描service中的实现类,因为在其中使用@Reference引用服务。

server.port=8089
dubbo.protocol.port = 20880
dubbo.application.name=dubbo-consumer
dubbo.scan.base-packages=com.bdqn.mycustomer.service.impl
dubbo.registry.address=zookeeper://127.0.0.1:2181

3、在service层中,创建customer接口与common中的接口对应。

public interface UserConsumerService {
    public String getUserNameByUid(int uid);
}

4、实现service接口,在service的impl中创建。

(1)service注解来自spring框架

(2)@Reference来自dubbo,引用服务来自公共组件common。

@Service
public class UserConsumerServiceImpl implements UserConsumerService {
    @Reference
    UserService us;
    @Override
    public String getUserNameByUid(int uid) {
        return us.getUserNameByUid(uid);
    }
}

5、controller层,请求调用

(1)返回json格式的内容

@RestController
public class UserController {
    @Autowired
    UserConsumerService service;
    @RequestMapping(value = "getuser/{uid}",method = RequestMethod.GET)
    public String getUserNameByUid(@PathVariable("uid") String uid){
        return service.getUserNameByUid(Integer.valueOf(uid));
    }
}

(2)如果要返回html视图,需要在provider项目中加thymeleaf依赖。因为它是内容提供者。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(3)同时在内容提供者的html文件中加声明。

<html lang="en" xmlns:th="http://www.thymeleaf.org">

四、结果展示

打开浏览器,访问地址就得到了结果。

image.png

目录
相关文章
|
7月前
|
Java 内存技术
IDEA工具debug的小技巧
IDEA工具debug的小技巧
84 0
|
Arthas Dubbo Java
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
123 0
|
4月前
|
SQL 存储 关系型数据库
IDEA中居然有碾压Navicat的数据库管理工具
【8月更文挑战第12天】IDEA中居然有碾压Navicat的数据库管理工具
247 3
IDEA中居然有碾压Navicat的数据库管理工具
|
7月前
|
Dubbo Java 应用服务中间件
性能工具之JMeter Dubbo 脚本开发
【5月更文挑战第13天】性能工具之JMeter Dubbo 脚本开发
91 3
性能工具之JMeter Dubbo 脚本开发
|
2月前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
34 4
|
3月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
|
4月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
程序员
【工具使用】Intellij IDEA 自动清除无效 import 包 和 清除无效 import包 的快捷键
【工具使用】Intellij IDEA 自动清除无效 import 包 和 清除无效 import包 的快捷键
1585 0
|
6月前
IDEA启动多个实例
IDEA启动多个实例
|
6月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
77 0