`
天空晴朗
  • 浏览: 26963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(十六) 构建dubbo分布式平台-dubbo服务接口定义

阅读更多

在前面的章节中,我们着手介绍了dubbo的相关知识,在这个基础之上,我们可以考虑将dubbo服务应用于我们的分布式系统了,从今天开始,我们会详细介绍如何将dubbo和spring集成并应用于我们的分布式系统。

 

1. 创建ant-bookmark-facade项目(dubbo服务接口),其中pom.xml文件定义如下:

<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sml.sz</groupId>
<artifactId>ant-project</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>ant-member-facade</artifactId>
<packaging>jar</packaging>
<name>ant-member-facade</name>
<url>http://maven.apache.org</url>
<description>ant的收藏模块Dubbo服务接口包,提供相关的Dubbo服务入口</description>
 
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- ant framework begin -->
<!--  系统核心框架包 -->
<dependency>
<groupId>com.sml.sz</groupId>
<artifactId>ant-framework</artifactId>
</dependency>
<!-- ant framework end -->
</dependencies>
</project>
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sml.sz</groupId>
<artifactId>ant-project</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>ant-member-facade</artifactId>
<packaging>jar</packaging>
<name>ant-member-facade</name>
<url>http://maven.apache.org</url>
<description>ant的会员模块Dubbo服务接口包,提供相关的Dubbo服务入口</description>
 
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- ant framework begin -->
<!--  系统核心框架包 -->
<dependency>
<groupId>com.sml.sz</groupId>
<artifactId>ant-framework</artifactId>
</dependency>
<!-- ant framework end -->
</dependencies>
</project>

2. 定义实体entity,因为接口中的对象要使用

package com.sml.sz.bookmark.entity;

import org.hibernate.validator.constraints.Length;

import com.sml.sz.common.persistence.DataEntity;

/**
 * 我的收藏链接管理Entity
 * 
 * @author ant
 * @version 2016-01-30
 */
public class Bookmark extends DataEntity<Bookmark> {

	private static final long serialVersionUID = 1L;
	private String tagId;
	private BookmarkTag bookmarkTag; // 业务主表ID 父类
	private String bookmarkname; // 名称
	private String bookmarkurl; // 名称

	public Bookmark() {
		super();
	}

	public Bookmark(String id) {
		super(id);
	}

	public Bookmark(BookmarkTag bookmarkTag) {
		this.tagId = bookmarkTag.getId();
		this.bookmarkTag = bookmarkTag;
	}

	@Length(min = 1, max = 64, message = "业务主表ID长度必须介于 1 和 64 之间")
	public String getTagId() {
		return tagId;
	}

	public void setTagId(String tagId) {
		this.tagId = tagId;
	}

	@Length(min = 1, max = 100, message = "名称长度必须介于 1 和 100 之间")
	public String getBookmarkname() {
		return bookmarkname;
	}

	public void setBookmarkname(String bookmarkname) {
		this.bookmarkname = bookmarkname;
	}

	@Length(min = 1, max = 100, message = "名称长度必须介于 1 和 100 之间")
	public String getBookmarkurl() {
		return bookmarkurl;
	}

	public void setBookmarkurl(String bookmarkurl) {
		this.bookmarkurl = bookmarkurl;
	}

	public BookmarkTag getBookmarkTag() {
		return bookmarkTag;
	}

	public void setBookmarkTag(BookmarkTag bookmarkTag) {
		this.bookmarkTag = bookmarkTag;
	}

}
package com.sml.sz.bookmark.entity;

import java.util.List;

import org.hibernate.validator.constraints.Length;

import com.google.common.collect.Lists;
import com.sml.sz.common.persistence.DataEntity;

/**
 * 我的收藏链接管理Entity
 * @author ant
 * @version 2016-01-30
 */
public class BookmarkTag extends DataEntity<BookmarkTag> {
	
	private static final long serialVersionUID = 1L;
	private String bookmarktagname;		// 标签名称
	private List<Bookmark> bookmarkList = Lists.newArrayList();		// 子表列表
	
	public BookmarkTag() {
		super();
	}

	public BookmarkTag(String id){
		super(id);
	}

	@Length(min=1, max=64, message="标签名称长度必须介于 1 和 64 之间")
	public String getBookmarktagname() {
		return bookmarktagname;
	}

	public void setBookmarktagname(String bookmarktagname) {
		this.bookmarktagname = bookmarktagname;
	}
	
	public List<Bookmark> getBookmarkList() {
		return bookmarkList;
	}

	public void setBookmarkList(List<Bookmark> bookmarkList) {
		this.bookmarkList = bookmarkList;
	}
}

  

3. 定义接口类,此类会在dubbo生产者和dubbo消费者之间被引用

package com.sml.sz.bookmark.service;

import java.util.List;

import com.sml.sz.bookmark.entity.BookmarkTag;
import com.sml.sz.common.persistence.Page;

/**
 * 我的收藏链接管理Service
 * 
 * @author ant
 * @version 2016-01-30
 */
public interface BookmarkTagFacade {
	public BookmarkTag get(String id);

	public List<BookmarkTag> findList(BookmarkTag bookmarkTag);

	public Page<BookmarkTag> findPage(Page<BookmarkTag> page, BookmarkTag bookmarkTag);

	public void save(BookmarkTag bookmarkTag);

	public void delete(BookmarkTag bookmarkTag);
}

 欢迎大家跟我一起学习《构建dubbo分布式平台》,希望大家持续关注后面的文章!

 

4
0
分享到:
评论
2 楼 天空晴朗 2017-12-22  
valiant025 写道
期待新的文章,受益匪浅

谢谢,近期有点忙,文章更新有点慢
1 楼 valiant025 2017-12-22  
期待新的文章,受益匪浅

相关推荐

    incubator-dubbo-ops-master.zip

    总的来说,`incubator-dubbo-ops-master.zip`是深入理解Dubbo Admin和分布式服务治理的重要资料,通过分析源码,我们可以更全面地掌握服务注册、发现、监控等核心概念,为构建稳定、高效的分布式系统打下坚实基础。

    dubbo-dev-book

    在Dubbo中,这通常体现为服务的接口定义,它规定了服务提供者和消费者之间的交互方式。 ### 编码约定 编码约定是开发团队为了保持代码风格一致性和提高代码可读性而制定的规则。Dubbo在其开源项目中也会有一系列的...

    dubbo示例代码dubbo-sample

    通过`dubbo-sample`代码,开发者不仅可以学习到Dubbo的基本用法,还能了解到服务治理的实践细节,从而更好地在实际项目中应用Dubbo,构建高效稳定的分布式系统。在实际开发中,可以根据需求选择合适的模块进行学习和...

    dubbo-admin-2.8.4的war包

    总的来说,dubbo-admin-2.8.4.war是Dubbo服务治理的重要工具,它简化了对分布式系统的服务管理和监控,提升了开发和运维的效率。理解并熟练使用dubbo-admin对于优化Dubbo架构的微服务应用至关重要。

    dubbo-admin-develop.zip

    通过深入研究这个压缩包,开发者可以学习到如何在Dubbo环境中搭建和定制自己的服务管理平台,了解服务治理的核心概念和技术实现,同时也能提升在分布式系统中的问题定位和解决能力。此外,参与开源项目也能锻炼团队...

    dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz

    在软件开发领域,分布式服务框架Dubbo扮演着至关重要的角色,它为企业级应用提供高性能、轻量级的服务治理方案。本篇文章将深入探讨`dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz`这个压缩包,它是针对初学...

    dubbo 分布式搭建源码

    Dubbo 旨在解决分布式系统中的服务调用问题,通过提供服务注册与发现、服务调用、负载均衡、容错机制等组件,使得开发者可以方便地构建高可用、高性能的服务。 2. **Zookeeper 在分布式中的角色** Zookeeper 是一...

    Dubbo分布式框架案例

    在使用Dubbo构建分布式服务时,我们需要以下几个步骤: 1. **创建服务提供者(Provider)**:编写服务接口及其实现,然后通过Dubbo的@Service注解暴露服务。同时,在配置文件中指定服务的元数据,如接口名、版本、...

    dubbo-demo-maven版

    在本文中,我们将深入探讨如何利用Maven构建Dubbo项目,以及Dubbo的主要特性和应用场景。 首先,Maven是Java项目管理的重要工具,它通过POM(Project Object Model)文件统一管理项目的依赖、构建过程和配置信息。...

    alibaba-dubbo-dubbo-2.5.7-0-ge2d63ad.tar.gz

    总之,通过深入研究"alibaba-dubbo-dubbo-2.5.7-0-ge2d63ad.tar.gz"这个压缩包,开发者可以掌握Dubbo的核心技术,提升分布式服务架构的设计和实现能力,对于构建高可用、高性能的企业级微服务系统具有重要价值。

    dubbo-spring-boot-starter-2.7.8.zip

    2. **配置服务**:通过Spring Boot的配置文件(如application.properties或application.yml),设置Dubbo的相关参数,如服务接口、版本、协议、注册中心地址等。 3. **定义服务提供者和消费者**:在Java代码中,...

    分布式 ssm-dubbo配置文件

    分布式SSM-Dubbo配置文件详解 SSM-Dubbo是一个基于Java的开源框架组合,由Spring、SpringMVC和Dubbo三部分...通过理解并熟练配置这些文件,开发者可以更好地管理和优化SSM-Dubbo分布式系统,提高系统的性能和可靠性。

    dubbo-dubbo-2.5.10.zip

    6. **Dubbo-admin 目录**:包含 Dubbo 控制台的源码,包括前端页面、后端服务接口以及数据库脚本等,用于构建和部署 Dubbo-admin 管理界面。 在这个老版本中,学习和研究 Dubbo-2.5.10 可以帮助我们理解早期分布式...

    dubbo-admin-2.6.0压缩版

    Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它提供了包括服务注册、服务发现、调用监控等一系列功能,帮助开发者构建分布式服务系统。 【描述】提到的使用方法是将解压后的dubbo-admin-2.6.0部署...

    dubbo-consumer-provider-demo-2.56

    解压后,我们可以看到服务提供者定义了具体的服务接口和其实现,以及相关的配置文件(如dubbo.properties、application.xml等)。启动服务提供者时,这些配置文件会指导Dubbo如何注册服务、暴露接口,并监听指定端口...

    incubator-dubbo-ops-master-.zip

    这个工具旨在提供对Dubbo分布式系统资源使用的实时监控能力,确保系统的稳定运行。 【描述】中提到,这个版本是开发者之前学习时使用的,尽管如此,它的稳定性得到了保证,意味着它可以有效地在生产环境中应用,...

    dubbo-admin-2.5.4,dubbo-springmvc-zookpper集成配置详解

    总的来说,通过合理的配置,可以有效地将Dubbo的高性能服务治理能力与SpringMVC的Web开发便利性相结合,同时利用Zookeeper作为服务注册与发现的平台,构建出稳定、可扩展的分布式应用系统。在实际开发中,理解并熟练...

    dubbo-admin:dubbo服务监控

    【dubbo-admin】是Dubbo的服务治理平台,它允许开发者监控服务的调用情况、查看服务接口的元数据、管理服务的注册与发现,以及处理其他服务治理相关任务。通过dubbo-admin,开发者可以实时查看服务的调用链路、延迟...

    Dubbo分布式服务框架入门2

    在这个"Dubbo分布式服务框架入门2"的学习资料中,我们将深入探讨如何在实际开发中使用Dubbo来构建分布式系统。 首先,我们要理解“发布服务”的概念。在第三节(Dubbo发布服务)中,你会了解到如何将一个本地的服务...

Global site tag (gtag.js) - Google Analytics