dubbo小项目
完整Dubbo項目演示
1 原型
1.1 部門顯示,顯示全部部門信息
1.2 員工新增
1.3 查看部門員工
2 按照分布式架構進行設計項目
設定員工管理和部門管理不在同一個模塊中,需要有一個員工管理項目和一個部門管理項目。
為了方便,不去每個項目使用一個窗口,而是使用聚合項目。
3 創建數據庫表
create table dept( id int(11) primary key auto_increment, name varchar(20) );insert into dept values(default,'開發部'); insert into dept values(default,'產品部');create table emp( id int(11) primary key auto_increment, name varchar(20), photo varchar(200), did int(11), CONSTRAINT fk_emp_dept FOREIGN key (did) REFERENCES dept(id) );4 使用逆向工程
略。
5 創建父項目
5.1 創建項目parent。
5.2 編寫pom.xml
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version> </parent> <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency></dependencies> </dependencyManagement>6 創建pojo項目
把逆向工程代碼粘貼進來
7 創建mapper項目
7.1 編寫pom.xml
<dependencies><dependency><artifactId>pojo</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency> </dependencies>7.2 新建配置文件
新建application-mybatis.yml
從逆向工程中把mapper接口和mapper.xml粘貼進行。
8 新建api項目
8.1 編寫pom.xml
<dependencies><dependency><artifactId>pojo</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency> </dependencies>9 新建provider
9.1 編寫pom.xml
<dependencies><dependency><artifactId>mapper</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><artifactId>api</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency> </dependencies>9.2 新建配置文件
新建application.yml
9.3 新建啟動類
新建com.bjsxt.ProviderApplication
10 完成Dept查詢功能
10.1 在api中新建接口
com.bjsxt.dubbo.service.DeptDubboService public interface DeptDubboService {List<Dept> selectAll(); }10.2 在provider中新建實現類 com.bjsxt.dubbo.service.impl.DeptDubboServiceImpl @Service public class DeptDubboServiceImpl implements DeptDubboService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic List<Dept> selectAll() {return deptMapper.selectByExample(null);} }10.3 新建項目dept
10.3.1 添加依賴
10.3.2 編寫配置文件
新建application.yml
10.3.3 新建啟動類
com.bjsxt.DeptApplication @SpringBootApplication @EnableDubbo public class DeptApplication {public static void main(String[] args) {SpringApplication.run(DeptApplication.class,args);} }10.3.4 新建接口及實現類
接口:com.bjsxt.service.DeptService
實現類:com.bjsxt.service.impl.DeptServiceImpl
10.3.5 新建控制器
com.bjsxt.controller.DeptController @Controller public class DeptController {@Autowiredprivate DeptService deptService;@GetMapping("/dept")public String shwoDept(Model model){model.addAttribute("list",deptService.showAll());return "dept";} }10.3.6 新建頁面
在resources /templates新建dept.html
總結
- 上一篇: RPC(远程过程调用)
- 下一篇: 代码调用NullPointerExcep