dubbo小项目2

1、项目结构搭建

在这里插入图片描述
父项目pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"><modelVersion>4.0.0</modelVersion><groupId>com.bjsxt</groupId><artifactId>dubbo_cms</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version>-<modules><module>dubbo_cms_pojo</module><module>dubbo_cms_mapper</module><module>dubbo_cms_serviceapi</module><module>dubbo_cms_provider</module><module>dubbo_cms_consumer</module></modules>-<dependencyManagement>-<dependencies>-<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency>-<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><!-- dubbo和Springboot整合使用的启动器 -->-<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.5</version></dependency><!-- dubbo使用Zookeeper作为注册中心时,必须依赖的资源。 -->-<dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.3.0</version></dependency>-<dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.3.0</version></dependency></dependencies></dependencyManagement></project>

2、实体类型工程

pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">-<parent><artifactId>dubbo_cms</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dubbo_cms_pojo</artifactId><version>1.0-SNAPSHOT</version></project>

实体类:
在这里插入图片描述

3、mapper数据访问工程

pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">-<parent><artifactId>dubbo_cms</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dubbo_cms_mapper</artifactId><version>1.0-SNAPSHOT</version>-<dependencies>-<dependency><groupId>com.bjsxt</groupId><artifactId>dubbo_cms_pojo</artifactId><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></project>

com.bjsxt.mapper

在这里插入图片描述
resources:
1.application-db.yml

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ry?serverTimezone=GMT%2B8username: rootpassword: root
mybatis:mapper-locations: classpath:com/bjsxt/mapper/*.xml

2.com.bjsxt.mapper
在这里插入图片描述

4、服务标准工程

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">-<parent><artifactId>dubbo_cms</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dubbo_cms_serviceapi</artifactId><version>1.0-SNAPSHOT</version>-<dependencies>-<dependency><groupId>com.bjsxt</groupId><artifactId>dubbo_cms_pojo</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>

2.com\bjsxt\cms\serviceapi

package com.bjsxt.cms.serviceapi;import com.bjsxt.pojo.CmsType;import java.util.List;/*** 服务接口。代表dubbo远程访问的标准*/
public interface CmsTypeServiceAPI {// 新增数据int save(CmsType type);// 根据主键更新数据int modify(CmsType type);// 查询所有List<CmsType> findAll();
}

5、provider服务提供者实现

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">-<parent><artifactId>dubbo_cms</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dubbo_cms_provider</artifactId><version>1.0-SNAPSHOT</version>-<dependencies>-<dependency><groupId>com.bjsxt</groupId><artifactId>dubbo_cms_serviceapi</artifactId><version>1.0-SNAPSHOT</version></dependency>-<dependency><groupId>com.bjsxt</groupId><artifactId>dubbo_cms_mapper</artifactId><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></project>

2.java\com\bjsxt\cms Provider启动类

package com.bjsxt.cms;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubbo
@MapperScan(basePackages = {"com.bjsxt.mapper"})
public class CmsProviderApp {public static void main(String[] args) {SpringApplication.run(CmsProviderApp.class, args);}
}

3.com\bjsxt\cms\service\impl服务实现

package com.bjsxt.cms.service.impl;import com.bjsxt.cms.serviceapi.CmsTypeServiceAPI;
import com.bjsxt.mapper.CmsTypeMapper;
import com.bjsxt.pojo.CmsType;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;import java.util.List;/*** Dubbo服务提供者*/
@Service
public class CmsTypeServiceImpl implements CmsTypeServiceAPI {// mapper对象注入@Autowiredprivate CmsTypeMapper cmsTypeMapper;// 新增数据到数据库@Overridepublic int save(CmsType type) {return cmsTypeMapper.insertSelective(type);}// 根据主键更新数据库数据@Overridepublic int modify(CmsType type) {return cmsTypeMapper.updateByPrimaryKeySelective(type);}// 查询所有数据@Overridepublic List<CmsType> findAll() {return cmsTypeMapper.selectByExample(null);}
}

4.配置文件application.yml

dubbo:application:name: dubbo-cms-providerregistry:address: zookeeper://192.168.89.140:2181protocol:port: 20880name: dubbospring:profiles:active: db

6、consumer服务消费者实现

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">-<parent><artifactId>dubbo_cms</artifactId><groupId>com.bjsxt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dubbo_cms_consumer</artifactId><version>1.0-SNAPSHOT</version>-<dependencies>-<dependency><groupId>com.bjsxt</groupId><artifactId>dubbo_cms_serviceapi</artifactId><version>1.0-SNAPSHOT</version></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></dependency>-<dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId></dependency>-<dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId></dependency></dependencies></project>

2.com\bjsxt\cms\client\controller

package com.bjsxt.cms.client.controller;import com.bjsxt.cms.client.service.CmsTypeService;
import com.bjsxt.pojo.CmsType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;import java.util.List;/*** 服务消费者控制器。与客户直接交互。提供控制逻辑*/
@Controller
public class CmsTypeController {@Autowiredprivate CmsTypeService cmsTypeService;/*** 查询所有的CmsType数据,通过Model作用域传递到视图,做显示。* @param model - 作用域* @return*/@GetMapping("/findAll")public String findAll(Model model){List<CmsType> list = cmsTypeService.findAll();model.addAttribute("list", list);return "list";}
}

3.service服务实现com\bjsxt\cms\clientservice

package com.bjsxt.cms.client.service;import com.bjsxt.pojo.CmsType;import java.util.List;// 本地服务接口
public interface CmsTypeService {// 查询所有CmsType数据List<CmsType> findAll();
}
package com.bjsxt.cms.client.service.impl;import com.bjsxt.cms.client.service.CmsTypeService;
import com.bjsxt.cms.serviceapi.CmsTypeServiceAPI;
import com.bjsxt.pojo.CmsType;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;import java.util.List;/*** 本地服务实现*/
@Service
public class CmsTypeServiceImpl implements CmsTypeService {@Referenceprivate CmsTypeServiceAPI serviceAPI;// 远程访问provider中的方法,实现数据查询。@Overridepublic List<CmsType> findAll() {return serviceAPI.findAll();}
}

4.启动类

package com.bjsxt.cms.client;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubbo
public class CmsTypeConsumerApp {public static void main(String[] args) {SpringApplication.run(CmsTypeConsumerApp.class, args);}
}

5.配置
5.1、application.yml

dubbo:application:name: dubbo-cms-consumerregistry:address: zookeeper://192.168.89.140:2181
server:port: 80

5.2、resources\templates\list.html
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的TreeSet集合会自动将元素升序排序

我们都知道&#xff0c;java中的集合可以分为这么两大类&#xff1a;Collection和Map &#xff0c;其中Collection 接口中又可以派生出来两个接口&#xff0c;分别为&#xff1a;List和Set接口。其中&#xff0c;Set下有HashSet&#xff0c;LinkedHashSet&#xff0c;TreeSet&a…

jsp中使用cookie时报错……

今天在看jsp中的cookie时&#xff0c;遇到一个比较麻烦的问题。关键代码如下&#xff1a;登录页面&#xff1a;login.jsp<form action"doLogin.jsp" method"post">用户名&#xff1a;<input type"text" name"sname" /><…

FastDFS(分布式文件系统)

Tracker&#xff1a;标准服务端口22122、HTTP端口8080 Storage&#xff1a;标准服务端口23000、HTTP端口8888 文章目录一、架构二、文件上传、下载、删除1 时序图2 流程说明3 代码实现一、架构 架构图&#xff1a; Client&#xff1a;客户端。使用java语言编写的项目属于客户…

微服务中的异步消息通讯

前言 在上一篇文章中&#xff0c;我们说到了异步消息通讯&#xff0c;下面这篇文章呢&#xff0c;大部分内容是翻译来自于这篇微软的文章&#xff0c;所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候&#xff0c;异步消息和事件驱动至关重要…

CSS3的几个变形案例……

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;那个……辣椒酱很好吃的&#xff0c;哈哈哈哈&#xff01;今天给大家分享的内容是利用CSS制作网页的动画。辣椒酱&#xff1a;自从有了这款辣椒酱&#xff0c;拌饭再也不用老干妈CSS变形CSS的变形包括这么几种效果&#xff…

我眼中的ASP.NET Core之微服务

前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序&#xff0c;想必大家都已经知道了&#xff0c;那就是eShopOnContainers。 我们先不看项目的后缀名称 OnXXX &#xff0c;因为除了 OnContainers 还有 OnAzure&#xff0c;OnWeb&#xff0c;OnKuberne…

形象的解释神经网络激活函数的作用是什么

转载自 形象的解释神经网络激活函数的作用是什么 神经网络中激活函数的作用 查阅资料和学习&#xff0c;大家对神经网络中激活函数的作用主要集中下面这个观点&#xff1a; 激活函数是用来加入非线性因素的&#xff0c;解决性模型所不能解决的问题。 下面我分别从这个方面…

CSS3中的动画示例

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;上一期我们分享了几个CSS变形案例&#xff0c;大家还记得有哪几个吗&#xff1f;原文在这里&#xff1a;CSS3的几个变形案例……今天&#xff0c;我们来看看CSS的过渡&#xff1a;过渡简单的来讲&#xff0c;就是元素由一种…

ASP.NET Core之跨平台的实时性能监控(2.健康检查)

前言 上篇我们讲了《如何使用App Metrics 做一个简单的APM监控》,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性能监控 首先我们来了解一下什么是健康检查(health checks)? 1.什么是健康检查? 健康检查…

​通俗理解神经网络BP反向传播算法

转载自 ​通俗理解神经网络BP反向传播算法 通俗理解神经网络BP反向传播算法 在学习深度学习相关知识&#xff0c;无疑都是从神经网络开始入手&#xff0c;在神经网络对参数的学习算法bp算法&#xff0c;接触了很多次&#xff0c;每一次查找资料学习&#xff0c;都有着似懂非…

CSS动画示例(上一篇是CSS过渡…)

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;前面&#xff0c;我们将CSS的变形和过渡都整理了&#xff0c;有需要的可以移步这里看&#xff1a;CSS3中的动画示例CSS3的几个变形案例……今天&#xff0c;我们来看看CSS3的动画。CSS3使用动画分为两个步骤&#xff1a;1.通…

Health Check in eShop -- 解析微软微服务架构Demo(五)

引言 What is the Health Check Health Check&#xff08;健康状态检查&#xff09;不仅是对自己应用程序内部检测各个项目之间的健康状态&#xff08;各项目的运行情况、项目之间的连接情况等&#xff09;&#xff0c;还包括了应用程序对外部或者第三方依赖库的状态检测。 W…

为什么梯度反方向是函数下降最快的方向

转载自 为什么梯度反方向是函数下降最快的方向 为什么梯度反方向是函数下降最快的方向&#xff1f; 刚接触梯度下降这个概念的时候&#xff0c;是在学习机器学习算法的时候&#xff0c;很多训练算法用的就是梯度下降&#xff0c;然后资料和老师们也说朝着梯度的反方向变动&a…

javaweb中实现分页,持续更新……

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;昨天分享了个分页工具类一个简单的分页工具类&#xff0c;其实&#xff0c;也是为今天的分享做的铺垫&#xff0c;今天&#xff0c;给大家带来的是javaweb实现分页的全过程&#xff01;前言&#xff1a;为什么需要分页&…

Redis(入门)

文章目录一、 Redis简介二、 基于Docker安装Redis单机版三、 Redis常用命令1 Key操作2 字符串值(String)&#xff08;值的长度不超过512MB&#xff09;3 哈希表(Hash)4 列表&#xff08;List&#xff09;5 集合(Set)6 有序集合&#xff08;Sorted Set&#xff09;四、 Redis持久…

浅析神经网络为什么能够无限逼近任意连续函数

转载自 浅析神经网络为什么能够无限逼近任意连续函数 神经网络为什么能够无限逼近任意连续函数&#xff1f; 下面通过一个分类例子一步一步的引出为什么神经网络能够无限逼近任意函数这个观点&#xff0c;并且给出直观感觉! 我们首先有这个需求&#xff0c;需要将下面的数据…

前端模块化工具--webpack学习心得

话说前头 webpack前段时间有听说一下&#xff0c;现在已经到了3.x的版本&#xff0c;自己没去接触。因为之前使用gulp来作为自己的项目构建工具。现在感觉gulp使用的趋势在减少。现在这段时间去接触了webpack&#xff0c;感觉很不错&#xff0c;它的模块化打包机制&#xff0c…

基于.NET CORE微服务框架 -谈谈surging的服务容错降级

一、前言 对于不久开源的surging受到不少.net同学的青睐&#xff0c;也受到.net core学习小组的关注&#xff0c;邀请加入.NET China Foundation 以方便国内.net core开源项目的推广&#xff0c;我果断接受邀请加入了队伍进行互相交流学习&#xff0c;最近也更新了surging新的…

java中部的分页实现(二)

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;昨天分享了关于分页查询的理论知识&#xff0c;今天我们就来结合代码和案例实际的应用一下&#xff0c;方便大家理解。前言&#xff1a;我们都知道&#xff0c;实现分页需要三个步骤。第一&#xff0c;确定页大小&#xff0…

SpringSecurity授权(访问控制)

一、 访问控制url匹配 在前面讲解了认证中所有常用配置&#xff0c;主要是对httpSecurity.formLogin()进行操作。而在配置类中httphttpSecurity.authorizeRequests()主要是对url进行控制&#xff0c;也就是我们所说的授权&#xff08;访问控制&#xff09;。httpSecurity.autho…