基于上篇博客springboot+dubbo+zookeeper搭建微服务基础框架中提到的问题进行改进

3 篇文章 0 订阅
2 篇文章 0 订阅

如果没有阅读上篇博客的请先移步至上篇博客,springboot+dubbo+zookeeper搭建微服务框架基础
对于上篇博客中提到的问题在这里插入图片描述

修改方案(主要对provider模块进行修改):

  1. provider模块添加dao包,删除或注释掉com.demo.provider.mapper包下的mapper接口,provider模块resource目录添加mapper文件夹
  2. 修改启动类ProviderApplication.java
  3. 修改配置文件application.yml
  4. 修改imp实现类注入对象

一、provider模块添加dao包,同时注释掉UserMapper接口,resource目录添加mapper文件夹

新的provider模块结构如下图
在这里插入图片描述
我这边通过easycode进行生成UserDao.java以及UserDao.xml,当然如果这两个文件夹不自己创建的话,使用easycode的时候会帮你自动创建。
在这里插入图片描述
这里我们只需要dao.java和mapper.xml
因为easycode帮我们生成的会默认我们的实体在此项目路径下的entity中 所以我们需要对UserDao.java和UserDao.xml中实体类的路径进行修改
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
UserDao.java添加 findAll 方法

List<User> findAll();

UserDao.xml同理
在这里插入图片描述
UserDao.xml添加findAll方法

    <select id="findAll" resultMap="UserMap">
        select
          id, username, password, age
        from dubbo_demo.user
    </select>

二、修改启动类ProviderApplication.java

将ProviderApplication.java中@MapperScan注解路径修改为dao包的路径

ProviderApplication.java

package com.demo.provider;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

@SpringBootApplication
@ImportResource({"classpath:spring-dubbo.xml"})
//@MapperScan("mapper") //修改前
//修改后
@MapperScan("com.demo.provider.dao")
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
        System.out.println("服务端启动成功!!!");

    }

}

三、修改配置文件application.yml

mybatis配置中添加:
mapper-locations: classpath:mapper/*.xml

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: domain

也可再添加sql的打印

logging:
  level:
    com.demo.provider: DEBUG

结构如图
在这里插入图片描述

四、修改imp实现类注入对象(当然实现类也可以直接通过easycode或者generator插件生成,这里为了承接上篇博客的案例所以直接在impl中修改)

UserImpl.java

package com.demo.provider.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.demo.common.domin.User;
import com.demo.common.service.UserService;
import com.demo.provider.dao.UserDao;
import com.demo.provider.mapper.UserMapper;

import javax.annotation.Resource;
import java.util.List;

/**
 * @ClassName: UserImpl
 * @Package: com.demo.provider.service.impl
 * @Description:
 * @Datetime: 2020/7/10   17:09
 * @author: kaishun.zhou
 */
@Service(version = "1.0.0")
public class UserImpl implements UserService {


/*    @Resource
    private UserMapper userMapper;*/

    @Resource
    private UserDao userDao;


    @Override
    public List<User> findAll() {
        System.out.println("进入提供者实现体");
        List<User> list = userDao.findAll();
        System.out.println(list.size());
        return list;
    }
}

至此可以重启项目进行测试。
访问:http://localhost:8081/getUser
在这里插入图片描述
控制台日志
在这里插入图片描述
至此,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值