dubbo+zookeeper+spring+springMVC+mybatis

35261 ワード

dubbo+zookeeper+spring+springMVC+mybatisの使用、dubrozookeeper
前の文を読みます。本人のレベルが限られていますので、間違いや説明が不適切なところがあれば指摘してください。スプレーしないでください。初めてブログを書きます。
 ソースのダウンロードリンク:http://files.cnblogs.com/files/la-tiao-jun-blog/dubbo%E4%BE%8B%E5%AD%90.rar
使用条件:
eclipse-jee-luna-S R 2-win 32-x 86_64
jdk 1.7、Apache Tomcat v 8.0、maven
zookeeper 3.4.6
dubbo-2.40。
dubbo-monitor-simple-23.54-NAPSHOT-asembly.tar.gz(dubbo簡易監視センター)
サービスプロバイダのプロジェクトディレクトリ(下左):                              サービス消費者の工程目録(下右):
         
 
サービスプロバイダのpom.xml:
banksteel-yesen:

  4.0.0

  bankmineral
  banksteel-yesen
   pom
  0.0.1-SNAPSHOT

  banksteel-yesen
  http://maven.apache.org

  
  
    ../banksteel-yesen-api
    ../banksteel-yesen-provider
  
  
  
      
         
           bankmineral
           banksteel-user-api
           
           ${maven.version}
           compile
        
        
           bankmineral
           banksteel-user-provider
           
           ${maven.version}
          
  
  
View Code
banksteel-yesen-ap:

  4.0.0

  bankmineral
  banksteel-yesen-api
  0.0.1-SNAPSHOT
  jar

  banksteel-yesen-api
  http://maven.apache.org

  
    UTF-8
        
        4.0.2.RELEASE
        
        3.2.6
        
        1.7.7
        1.2.17
    
      
       bankmineral
       banksteel-yesen
        0.0.1-SNAPSHOT
        
       ../banksteel-yesen/pom.xml  
  
  
      
          junit
          junit
          3.8.1
          test
         
    
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            org.springframework
            spring-oxm
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        
            
            org.aspectj
            aspectjrt
            1.6.12
        
        
            org.aspectj
            aspectjweaver
            1.6.12
            
           
                org.javassist  
                javassist  
                3.18.1-GA  
            
        
              org.jboss.netty
              netty
              3.2.5.Final
        
        
              org.apache.zookeeper
              zookeeper
              3.4.6
            
        
        
            org.mybatis
            mybatis
            ${mybatis.version}  
            
            
        
        
            log4j
            log4j
            ${log4j.version}
        
            
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
              
  

View Code
banksteel-yesen-provider:

  4.0.0
  bankmineral
  banksteel-yesen-provider
  jar
  0.0.1-SNAPSHOT
  banksteel-yesen-provider Maven Webapp
  http://maven.apache.org
    
       bankmineral
       banksteel-yesen
        0.0.1-SNAPSHOT
        
       ../banksteel-yesen/pom.xml  
  

  
    
         bankmineral
          banksteel-yesen-api
           0.0.1-SNAPSHOT
     
   
        
        
            org.mybatis
            mybatis-spring
            1.2.2
        
        
        
            javax
            javaee-api
            7.0
        
        
        
            mysql
            mysql-connector-java
            5.1.30
        
        
        
            commons-dbcp
            commons-dbcp
            1.2.2
        
        
        
            jstl
            jstl
            1.2
        
    
        
        
            com.alibaba
            fastjson
            1.1.41
        

        
        
            org.codehaus.jackson
            jackson-mapper-asl
            1.9.13
        
        
        
            commons-fileupload
            commons-fileupload
            1.3.1
        
        
            commons-io
            commons-io
            2.4
        
        
            commons-codec
            commons-codec
            1.9
            
        
            com.alibaba
            dubbo
            2.4.10
        
        
            com.101tec
            zkclient
            0.4
    
  
  
          
            
                ${project.build.directory}/classes
                src/main/resources
                true
                
                **/*.xml
                *.properties
                
            
            
            
                ${project.build.directory}/classes/META-INF/spring
                src/main/resources/spring
                true
                
                    spring-mybatis.xml
                
            
        
        
        
            
                
                
                    org.eclipse.m2e
                    lifecycle-mapping
                    1.0.0
                    
                        
                            
                                
                                    
                                        org.apache.maven.plugins
                                        maven-dependency-plugin
                                        [2.0,)
                                        
                                            copy-dependencies
                                        
                                    
                                    
                                        
                                    
                                
                            
                        
                    
                
            
        
        
            
            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    target/classes/
                    
                        
                            com.alibaba.dubbo.container.Main
                            
                            false
                            true
                            lib/
                        
                        
                            .
                        
                    
                
            
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy-dependencies
                        package
                        
                            copy-dependencies
                        
                        
                            jar
                            jar
                            false
                            
                                ${project.build.directory}/lib
                            
                        
                    
                
            
        
    
View Code
サービス消費者のpom.xml
banksteel-user-ap:

4.0.0
  bankmineral
  banksteel-userapp
  war
  0.0.1-SNAPSHOT
  banksteel-userapp Maven Webapp
  http://maven.apache.org

    
        bankmineral
        banksteel-yesen
        0.0.1-SNAPSHOT
    

  
    
      junit
      junit
      3.8.1
      test
    
    
        bankmineral
        banksteel-yesen-api
        0.0.1-SNAPSHOT
    

    
            com.alibaba
            dubbo
            2.4.10
        
        
            com.101tec
            zkclient
            0.4
    
    
        
            jstl
            jstl
            1.2
        
  
  
    banksteel-user-app
  
View Code
サービスプロバイダのjavaコード:
-----------banksteel-yesen-appi---------------
common.yesen.entity
package com.yesen.entity;

import java.io.Serializable;

public class User implements Serializable{
    private long id;
    private String username;
    private String password;
    private int age;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
View Code
common.yesen.service
package com.yesen.service;

import java.util.List;
import java.util.Map;

import com.yesen.entity.User;

public interface UserService {

    List getUserByMap(Map paramMap);

    void insertUser(User user);
}
View Code
--------banksteel-yesen-provider-------
comp.yesen.dao
package com.yesen.dao;

import java.util.List;
import java.util.Map;

import com.yesen.entity.User;

public interface UserDAO {

    List getUserByMap(Map paramMap);

    void insertUser(User user);
}
View Code
comp.yesen.dao.impl
package com.yesen.dao.impl;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.yesen.dao.UserDAO;
import com.yesen.entity.User;

@Repository("userDAO")
public class UserDAOImpl implements UserDAO {

    private static final String INSERT = "com.yesen.model.userMapper.insertUser";

    private static final String LISTBY = "com.yesen.model.userMapper.listBy";

    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    public List getUserByMap(Map paramMap) {

        SqlSession session = sqlSessionTemplate.getSqlSessionFactory().openSession();

        return session.selectList(LISTBY, paramMap);
    }

    public void insertUser(User user) {

        SqlSession session = sqlSessionTemplate.getSqlSessionFactory().openSession();

        session.insert(INSERT, user);
    }
}
View Code
comp.yesen.service.impl
package com.yesen.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yesen.dao.UserDAO;
import com.yesen.entity.User;
import com.yesen.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDAO userDAO;

    public List getUserByMap(Map paramMap) {
        
        return userDAO.getUserByMap(paramMap);
    }

    public void insertUser(User user) {
        
        userDAO.insertUser(user);
    }
}
View Code
サービスプロバイダの他の構成:
ディレクトリ構造はsrc/main/resourceだけ見ます。
 
user Mapper.xml:




user

    
        
        
        
        
    

    
        ID, USERNAME, PASSWORD, AGE
    

    
    
        INSERT INTO
        
        (USERNAME, PASSWORD, AGE)
        VALUES
        (#{username},#{password}, #{age})
    


    


    
        
            AND USERNAME = #{username}
        
        
            AND PASSWORD = #{password}
        
    
    
View Code
mybatis-config.xml:




    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
        
    
View Code
dubbo-service.xml:




    
    
     
    
    
    

    

View Code
spring-mybatis.xml:




    
    
    
        
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
        
    

    
    
        
    
    
View Code
 サービス消費者のjavaコード:
common.yesen.co ntroller
package com.yesen.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.yesen.entity.User;
import com.yesen.service.UserService;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/create")
    public String createUser(HttpServletRequest request, Model model){
        
        String username =request.getParameter("username");
        String password =request.getParameter("password");
        String age =request.getParameter("age");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setAge(Integer.parseInt(age));
        userService.insertUser(user);
        model.addAttribute("message", user.getUsername());

        return "insertSuccess";
    }

    @RequestMapping(value = "/query")
    public String queryUser(String username, Model model,HttpServletRequest request){

        Map paramMap = new HashMap();
        
        List userList = userService.getUserByMap(paramMap);
        System.out.println("------------");
        for(User user: userList){
            System.out.println("  :"+user.getUsername()+"  ,  :"+user.getPassword());
        }

        model.addAttribute(userList);

        return "userInfo";
    }
}
View Code
サービス消費者の他の構成:
注:サービス消費者工程リストのdubbo.propertiesは使われていません。無視してください。
dubbo-user.xml:



    
    
 
    

    
    
View Code
root-config.xml:




    
View Code
spring-mvc.xml:




    
    
    
    
    
    
    
    
        
        
        
    

View Code
web.xml:


  Archetype Created Web Application
    
        contextConfigLocation  
        classpath:META-INF/spring/root-config.xml  
      
      
      
        encodingFilter  
        org.springframework.web.filter.CharacterEncodingFilter  
          
            encoding  
            UTF-8  
          
      
      
        encodingFilter  
        /*  
      
      
      
        org.springframework.web.context.ContextLoaderListener  
      
      
      
        org.springframework.web.util.IntrospectorCleanupListener  
      
  
      
      
        SpringMVC  
        org.springframework.web.servlet.DispatcherServlet  
          
            contextConfigLocation  
            classpath:META-INF/spring/spring-mvc.xml  
          
        1  
      
      
        SpringMVC  
          
        /  
     
   
    
        /index.jsp
     
View Code
 windowsの下でプロジェクトを実行します。
1.zookeeperを起動します。zookeeperのbinディレクトリを見つけて、zkServer.cmdをダブルクリックします。実行済みの効果は以下の通りです。
 
(注:私の第二ステップは、dubboサービスを起動し、jarを実行する方式で起動して、煩雑です。適用されなくて、pomファイルを変更して、パッケージコンパイルの配置を変更したほうがいいです。asembly、installを使って、サーバにアップロードして、ストレス解消します。中にはlibディレクトリが含まれています。直接運行します。サービスですが、まだできていません。知っていることを教えてください。これからはありがとうございます。
2.dubboサービスの起動:banksteel-yesen右ボタン-->Run As-->Maven clean-->Maven installを選択してください。
エラーがなければ、targetディレクトリの下にbanksteel-yesen-provider-00.0.1-NAPSHOT.jarとlibを見つけて、一緒にcopyを出して、例えばd盤の下に置いて、jarを実行します。 
コマンド:java-jar banksteel-yesen-provider-0.1-NAPSHOT.jar
 
私たちはdubboサービスが開始されたのを見ました。
3.zookeeperクライアントを接続して、私達はもう一つの/dubboノードを出すことを見ることができます。
zkCli.cmdをダブルクリックしてhを入力し、enterキーを押して、zookeeperのいくつかのコマンドを確認します。
4.サービス消費者webプロジェクトを開始する。
tomcat起動は言わないでください。運行の効果は以下の通りです。
5.dubb監視センターの使用:
dubbo-monitor-simple-23.54-NAPSHO-asembly.tar.gz 解凍後。confディレクトリに入り、dubbo.propertiesを見つけて、編集、保存します。
binディレクトリに入り、start.batをダブルクリックします。
ブラウザを開けて、http:locahost:8080/servicesを入力してください。 (local hostは実はzookeeperサーバのアドレスです)効果は以下の通りです。
上の図からどのようなdubboサービスとサービスの消費状況が分かりますか?