如果没有阅读上篇博客的请先移步至上篇博客,springboot+dubbo+zookeeper搭建微服务框架基础
对于上篇博客中提到的问题
修改方案(主要对provider模块进行修改):
- provider模块添加dao包,删除或注释掉com.demo.provider.mapper包下的mapper接口,provider模块resource目录添加mapper文件夹
- 修改启动类ProviderApplication.java
- 修改配置文件application.yml
- 修改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
控制台日志
至此,结束。