在前面的章節中,咱們着手介紹了dubbo的相關知識,在這個基礎之上,咱們能夠考慮將dubbo服務應用於咱們的分佈式系統了,從今天開始,咱們會詳細介紹如何將dubbo和spring集成並應用於咱們的分佈式系統。java
1. 建立ant-bookmark-facade項目(dubbo服務接口),其中pom.xml文件定義以下:spring
<span style="font-size: 16px;"><?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></span>
2. 定義實體entity,由於接口中的對象要使用apache
<span style="font-size: 16px;">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; } }</span>
<span style="font-size: 16px;">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; } }</span>
3. 定義接口類,此類會在dubbo生產者和dubbo消費者之間被引用框架
<span style="font-size: 16px;">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); }</span>
歡迎你們跟我一塊兒學習《構建dubbo分佈式平臺》,但願你們持續關注後面的文章!maven
願意瞭解框架技術或者源碼的朋友交流分享技術:貳零四貳八四九貳叄柒分佈式