DubboのSSMプロジェクトでの使用
116406 ワード
DubboのSSMプロジェクトでの使用
ケースソースのダウンロードアドレス
https://download.csdn.net/download/pcbhyy/10764704
操作手順 ssm統合プロジェクトを作成し、初期コード を作成します.この項目を2つの部分(表示層の一部、ビジネスロジック、データアクセス層の一部) に分割する.は、dubboを介して表示レイヤ内のビジネスロジックレイヤ内のコンポーネント(キー) にアクセスする.
Dubboの概要
Dubboはアリババ社がオープンソースした高性能の優れたサービスフレームワークであり、アプリケーションが高性能のRPCを通じてサービスの出力と入力機能を実現し、Springフレームワークとシームレスに統合することができる. Provider暴露サービス側を「サービスプロバイダ」と呼ぶ. Consumerは、リモート・サービス側を「サービス消費者」と呼ぶ. Registryサービス登録と発見されたセンターディレクトリサービスを「サービス登録センター」と呼ぶ. Monitorは、サービスの呼び出し回数と呼び出し時間を統計するログ・サービスを「サービス監視センタ」と呼ぶ.
一、項目分割分割内容:web.xml pom.xml springmvc.xml applicationContext.xml部分プロファイルの削除コードの削除 は層項目1)pomを表す.xml(注意:dubbo、zookeeperの依存が追加されました)
2)web.xml(注意:リスナーとコンテキストパラメータが削除されました)
3)アプリケーションContextを削除する.xml、db.properties、SqlMapConfig.xml 3つのプロファイル4)はcomを削除する.yy.mapperパッケージとcom.yy.サービスパッケージの実装クラス(インタフェースが残っている)3.ビジネスロジックとデータアクセス層プロジェクト1)pom.xml web.xml(フロントエンドコントローラサーブレットの構成を削除)
3)springmvcを削除した.xml 4)comを削除した.yy.コントローラパッケージとすべてのjspページ
二、linuxにzookeeperをインストールする
1)テストjava环境java-version 2)SSHアップロードヒント:encountered 1 errors during the transferエラー解决方法アップロード时にwindowsのパスに括弧「()」が存在しないので、括弧を外してアップロードすればよいか、括弧をつけない経路でファイルを正常にアップロードすることができます.
3)zookeeperはjavaが開発したwindows、linux環境で実行できる.まずjdkをインストールする必要があります.インストール手順:第1ステップ:jdkをインストールする第2ステップ:zookeeperの圧縮パッケージをlinuxシステムにアップロードします.ステップ3:圧縮パッケージの解凍
ステップ4:zookeeper-3.4に入ります.6ディレクトリ、dataフォルダを作成します.
ステップ5:confフォルダに入りzoo_sample.cfgはzooと改名した.cfg
ステップ6:zooを編集します.cfg(vim zoo.cfg)、data属性を変更する:dataDir=/root/zookeeper-3.4.6/data 7ステップ:zookeeperを起動する
オフ:
ステータスの表示:
注意:ファイアウォールを閉じる必要があります.
永続的にシャットダウンします.設定を変更して起動します.ファイアウォールを起動しません.
zookeeperを正常に起動できない場合は、dataディレクトリの下のzookeeperを削除する必要があります.server.pidファイル.
三、dubboを通じて表示層の中で業務論理層の中のコンポーネントにアクセスするビジネスロジックプロジェクトのパブリッシュコンポーネント(アプリケーションContext.xmlに追加) 表示レイヤ項目で参照コンポーネント(springmvc.xmlに追加) まずビジネスロジックプロジェクトを起動し、表示レイヤプロジェクトを起動する(注意:両プロジェクトのtomcatのポート番号が異なることを変更する) ブラウザでactionにアクセスし、 をテストします.
四、説明
Dubboって何?
Dubboは分散型サービスフレームワークであり、高性能と透明化されたRPCリモートサービスコールスキーム、およびSOAサービスガバナンススキームの提供に力を入れています.簡単に言えば、dubboはサービスフレームワークであり、分布式の需要がなければ、実際には必要ありません.分布式の時だけ、dubboがあります.
このような分散型サービスフレームワークのニーズは、本質的にサービス呼び出しの東であり、はっきり言ってリモートサービス呼び出しの分散型フレームワーク(WebサービスモードのWSDlに別れを告げ、サービス者と消費者の方法でdubboに登録する)の核心部分には、次のようなものが含まれています.リモート通信:複数のスレッドモデル、シーケンス化、および「要求応答」モードを含む複数の長接続ベースのNIOフレームワークを抽象的にカプセル化する情報交換方式を提供する. クラスタフォールト:マルチプロトコルサポート、およびソフト負荷等化、失敗フォールトフォールト、アドレスルーティング、動的構成などのクラスタサポートを含む、インタフェース・メソッドに基づく透明なリモート・プロシージャ・コールを提供します. 自動発見:登録センターディレクトリサービスに基づいて、サービス消費者がサービス提供者を動的に検索することができ、アドレスを透明にし、サービス提供者が機械を滑らかに増加または減少させることができる.
Dubboは何ができますか?透明化されたリモートメソッド呼び出しは、ローカルメソッドを呼び出すようにリモートメソッドを呼び出し、簡単な構成でAPI侵入はありません. ソフト負荷等化及びフォールトトレランス機構は、F 5などのハードウェア負荷等化器の代わりにイントラネットで代替でき、コストを低減し、単点を低減できる. サービス自動登録と発見は、サービスプロバイダアドレスを書き込む必要がなくなり、登録センターはインタフェース名に基づいてサービスプロバイダのIPアドレスを照会し、サービスプロバイダの追加または削除をスムーズにすることができる.
ケースソースのダウンロードアドレス
https://download.csdn.net/download/pcbhyy/10764704
操作手順
Dubboの概要
Dubboはアリババ社がオープンソースした高性能の優れたサービスフレームワークであり、アプリケーションが高性能のRPCを通じてサービスの出力と入力機能を実現し、Springフレームワークとシームレスに統合することができる.
一、項目分割
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.yygroupId>
<artifactId>ssm_dept2_vcartifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>warpackaging>
<build>
<resources>
<resource>
<directory>src/main/javadirectory>
<excludes>
<exclude>**/*.javaexclude>
excludes>
resource>
<resource>
<directory>src/main/resourcesdirectory>
resource>
resources>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<version>2.7version>
<configuration>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.2version>
<configuration>
<source>1.8source>
<target>1.8target>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.apache.tomcat.mavengroupId>
<artifactId>tomcat7-maven-pluginartifactId>
<version>2.2version>
<configuration>
<path>/path>
<port>8090port>
<uriEncoding>utf-8uriEncoding>
configuration>
plugin>
plugins>
build>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.17version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>aopalliancegroupId>
<artifactId>aopallianceartifactId>
<version>1.0version>
dependency>
<dependency>
<groupId>org.aspectjgroupId>
<artifactId>aspectjweaverartifactId>
<version>1.8.10version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-ormartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>jstlgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.1.0version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>jsp-apiartifactId>
<version>2.2version>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>1.7.25version>
dependency>
<dependency>
<groupId>org.hibernategroupId>
<artifactId>hibernate-validatorartifactId>
<version>5.4.1.Finalversion>
dependency>
<dependency>
<groupId>javax.validationgroupId>
<artifactId>validation-apiartifactId>
<version>1.1.0.Finalversion>
dependency>
<dependency>
<groupId>org.jboss.logginggroupId>
<artifactId>jboss-loggingartifactId>
<version>3.3.1.Finalversion>
dependency>
<dependency>
<groupId>com.fasterxmlgroupId>
<artifactId>classmateartifactId>
<version>1.3.3version>
dependency>
<dependency>
<groupId>commons-fileuploadgroupId>
<artifactId>commons-fileuploadartifactId>
<version>1.3.2version>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
<version>2.8.8.1version>
dependency>
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.0.0version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>dubboartifactId>
<version>2.5.3version>
dependency>
<dependency>
<groupId>org.apache.zookeepergroupId>
<artifactId>zookeeperartifactId>
<version>3.4.7version>
dependency>
<dependency>
<groupId>com.github.sgroschupfgroupId>
<artifactId>zkclientartifactId>
<version>0.1version>
dependency>
dependencies>
project>
2)web.xml(注意:リスナーとコンテキストパラメータが削除されました)
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>spring_demodisplay-name>
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
welcome-file-list>
<filter>
<filter-name>CharacterEncodingFilterfilter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
filter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>utf-8param-value>
init-param>
filter>
<filter-mapping>
<filter-name>CharacterEncodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<servlet>
<servlet-name>DispatcherServletservlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
servlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:springmvc.xmlparam-value>
init-param>
servlet>
<servlet-mapping>
<servlet-name>DispatcherServletservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
web-app>
3)アプリケーションContextを削除する.xml、db.properties、SqlMapConfig.xml 3つのプロファイル4)はcomを削除する.yy.mapperパッケージとcom.yy.サービスパッケージの実装クラス(インタフェースが残っている)3.ビジネスロジックとデータアクセス層プロジェクト1)pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.yygroupId>
<artifactId>ssm_dept2_martifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>warpackaging>
<build>
<resources>
<resource>
<directory>src/main/javadirectory>
<excludes>
<exclude>**/*.javaexclude>
excludes>
resource>
<resource>
<directory>src/main/resourcesdirectory>
resource>
resources>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<version>2.7version>
<configuration>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.2version>
<configuration>
<source>1.8source>
<target>1.8target>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.apache.tomcat.mavengroupId>
<artifactId>tomcat7-maven-pluginartifactId>
<version>2.2version>
<configuration>
<path>/path>
<port>8089port>
<uriEncoding>utf-8uriEncoding>
configuration>
plugin>
plugins>
build>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.17version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>aopalliancegroupId>
<artifactId>aopallianceartifactId>
<version>1.0version>
dependency>
<dependency>
<groupId>org.aspectjgroupId>
<artifactId>aspectjweaverartifactId>
<version>1.8.10version>
dependency>
<dependency>
<groupId>commons-dbcpgroupId>
<artifactId>commons-dbcpartifactId>
<version>1.4version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.6version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-ormartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.2.6version>
dependency>
<dependency>
<groupId>cglibgroupId>
<artifactId>cglibartifactId>
<version>3.2.5version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>4.3.8.RELEASEversion>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>1.7.25version>
dependency>
<dependency>
<groupId>org.hibernategroupId>
<artifactId>hibernate-validatorartifactId>
<version>5.4.1.Finalversion>
dependency>
<dependency>
<groupId>javax.validationgroupId>
<artifactId>validation-apiartifactId>
<version>1.1.0.Finalversion>
dependency>
<dependency>
<groupId>org.jboss.logginggroupId>
<artifactId>jboss-loggingartifactId>
<version>3.3.1.Finalversion>
dependency>
<dependency>
<groupId>com.fasterxmlgroupId>
<artifactId>classmateartifactId>
<version>1.3.3version>
dependency>
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>5.0.0version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>dubboartifactId>
<version>2.5.3version>
dependency>
<dependency>
<groupId>org.apache.zookeepergroupId>
<artifactId>zookeeperartifactId>
<version>3.4.7version>
dependency>
<dependency>
<groupId>com.github.sgroschupfgroupId>
<artifactId>zkclientartifactId>
<version>0.1version>
dependency>
dependencies>
project>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>spring_demodisplay-name>
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
welcome-file-list>
<filter>
<filter-name>CharacterEncodingFilterfilter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
filter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>utf-8param-value>
init-param>
filter>
<filter-mapping>
<filter-name>CharacterEncodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<context-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:applicationContext.xmlparam-value>
context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
listener-class>
listener>
web-app>
3)springmvcを削除した.xml 4)comを削除した.yy.コントローラパッケージとすべてのjspページ
二、linuxにzookeeperをインストールする
1)テストjava环境java-version 2)SSHアップロードヒント:encountered 1 errors during the transferエラー解决方法アップロード时にwindowsのパスに括弧「()」が存在しないので、括弧を外してアップロードすればよいか、括弧をつけない経路でファイルを正常にアップロードすることができます.
3)zookeeperはjavaが開発したwindows、linux環境で実行できる.まずjdkをインストールする必要があります.インストール手順:第1ステップ:jdkをインストールする第2ステップ:zookeeperの圧縮パッケージをlinuxシステムにアップロードします.ステップ3:圧縮パッケージの解凍
tar -zxvf zookeeper-3.4.6.tar.gz
ステップ4:zookeeper-3.4に入ります.6ディレクトリ、dataフォルダを作成します.
mkdir data
ステップ5:confフォルダに入りzoo_sample.cfgはzooと改名した.cfg
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
ステップ6:zooを編集します.cfg(vim zoo.cfg)、data属性を変更する:dataDir=/root/zookeeper-3.4.6/data 7ステップ:zookeeperを起動する
[root@localhost bin]# ./zkServer.sh start
オフ:
[root@localhost bin]# ./zkServer.sh stop
ステータスの表示:
[root@localhost bin]# ./zkServer.sh status
:
JMX enabled by default
Using config: /root/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone
注意:ファイアウォールを閉じる必要があります.
service iptables stop
永続的にシャットダウンします.設定を変更して起動します.ファイアウォールを起動しません.
chkconfig iptables off
zookeeperを正常に起動できない場合は、dataディレクトリの下のzookeeperを削除する必要があります.server.pidファイル.
三、dubboを通じて表示層の中で業務論理層の中のコンポーネントにアクセスする
<dubbo:application name="ssm_dept2_m"/>
<dubbo:registry protocol="zookeeper" address="192.168.220.129:2181">dubbo:registry>
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:service interface="com.yy.service.DeptService" ref="deptServiceImpl">dubbo:service>
<dubbo:service interface="com.yy.service.EmpService" ref="empServiceImpl">dubbo:service>
<dubbo:application name="ssm_dept2_vc"/>
<dubbo:registry protocol="zookeeper" address="192.168.220.129:2181">dubbo:registry>
<dubbo:reference interface="com.yy.service.DeptService" id="deptService">dubbo:reference>
<dubbo:reference interface="com.yy.service.EmpService" id="empService">dubbo:reference>
四、説明
Dubboって何?
Dubboは分散型サービスフレームワークであり、高性能と透明化されたRPCリモートサービスコールスキーム、およびSOAサービスガバナンススキームの提供に力を入れています.簡単に言えば、dubboはサービスフレームワークであり、分布式の需要がなければ、実際には必要ありません.分布式の時だけ、dubboがあります.
このような分散型サービスフレームワークのニーズは、本質的にサービス呼び出しの東であり、はっきり言ってリモートサービス呼び出しの分散型フレームワーク(WebサービスモードのWSDlに別れを告げ、サービス者と消費者の方法でdubboに登録する)の核心部分には、次のようなものが含まれています.
Dubboは何ができますか?