springMVC+mybatis+dubbo实现SOA架构 以及数据查询

1:下载zookeeper ,稳定版3.4.8,最新版3.5.1,解压后,进入到conf目录,复制一份zoo_sample.conf,改名为zoo.conf,用无格式编辑器(比如sublime text,notepad等)打开,修改dataDir=/tmp/zookeeper为你的动物园管理员数据存放路径,比如笔者的为D:/软件/ zookeeperData /动物园管理员,修改为dataDir=D:/software/zookeeperData/zookeeper,保存即可,如果要配置ZK集群,还需要其他配置,暂时不说集群这一块,后面涉及到了再说。

zookeeper国内下载镜像地址:http ://mirrors.hust.edu.cn/apache/zookeeper/     bin /找到启动服务点击运行成功之后



2:下载JDK,maven安装配置这基础的东西就不说了找文档看看就会 

3:dubbo-admin.war

这个战争包是阿里达博团队开发的一个可视化操作达博的后台管理服务,可是查看机器,提供者,消费者,以及手动配置负载权重等。将次包下载后,放在tomcat的的的webapps目录下,如果你的tomcat的和动物园管理员不是同一台服务器,需要修改战争包下的配置文件,将地址指向的动物园管理员的服务地址,端口是动物园管理员的端口,默认2181。



整体结构简单的分了一下,如下图所示:
springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第1张图片
1:新建项目
springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第2张图片

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第3张图片

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第4张图片

2;接着新建选中当前项目在当前项目下面接着新建模块soa-api

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第5张图片

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第6张图片

2.1:新建接口

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第7张图片

的pom.xml
<?xml version =“1.0”?> 
	xmlns =”http://maven.apache.org/POM/4.0.0“xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance“> 
	 4.0.0 < / modelVersion> 
	 
		 cn.dubbo  
		 soa-dubbo  
		 0.0.1-SNAPSHOT  
	 
	 cn.dubbo.api  
	 dubbo-api  
	 dubbo-api  
	 http://maven.apache.org  
	 
		 UTF-8  
	 
	 
		 
			 cn.dubbo.pojo  
			 dubbo-pojo  
			 0.0.1- SNAPSHOT  
		 
		 
			 junit  
			 junit  
			 3.8.1  
			 test  
		 
	 

继续新建pojo实体类模块核心工具类模块api-imp实现模块和上面新建api接口过程是一样的我就不截图了直接上代码

pojo模块

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第8张图片

pom.xml

<?xml version =“1.0”?> 
	xmlns =”http://maven.apache.org/POM/4.0.0“xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance“> 
	 4.0.0 < / modelVersion> 
	 
		 cn.dubbo  
		 soa-dubbo  
		 0.0.1-SNAPSHOT  
	 
	 cn.dubbo.pojo  
	 dubbo-pojo  
	 dubbo-pojo  
	 http://maven.apache.org  
	 
		 UTF-8  
	 
	 
		 
			 junit  
			 junit  
			 3.8.1  
			  
		 
	 


core模块

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第9张图片

pom.xml

<?xml version =“1.0”?> 
	xmlns =”http://maven.apache.org/POM/4.0.0“xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance“> 
	 4.0.0 < / modelVersion> 
	 
		 cn.dubbo  
		 soa-dubbo  
		 0.0.1-SNAPSHOT  
	 
	 cn.dubbo.core  
	 dubbo-core  
	 dubbo-core  
	 http://maven.apache.org  
	 
		 UTF-8  
		 4.1.4.RELEASE  
		 3.0.5.RELEASE  
		 2.5.0  
	 


	 
		 
			 junit  
			 junit  
			 3.8.1  
			测试 
		 


		<! -  spring  - > 
		 
			 org.springframework  
			 spring-web  
			 $ { pring-ck.version}  
		 


		 
			 org.springframework  
			 spring-webmvc  
			 $ {spring-ck.version}版本> 
		 
		<依赖性> 
			<的groupId> org.springframework  
			弹簧OXM  
			<版本> $ {弹簧ck.version}  
		 
		<依赖性> 
			 org.springframework  
			 spring-orm  
			 $ {spring-ck.version}  
		 


		 
			 org.springframework < / groupId> 
			 spring-jdbc  
			 $ {spring.version}  
		 


		 
			 org.springframework  
			 spring-test < /的artifactId> 
			<版本> $ {spring.version}  
			<范围>测试 
		 


		<依赖性> 
			<的groupId> com.alibaba  
			多宝 
			<版本> 2.5.3  
			<排除> 
				<排除> 
					 spring  
					 org.springframework  
				 
			 
		 
		 
			 org.apache.zookeeper  
			 zookeeper  
			 3.4.6  
		 


		 
			 com.netflix.curator  
			馆长的框架 
			<版本> 1.1.10  
		 


		<依赖性> 
			<的groupId> com.101tec  
			 zkclient  
			<版本> 0.6  
		 




		 
			 javax.servlet  
			 jstl  
			 1.2  
		 


		<! -  mybatis - > 
		 
			 org.mybatis  
			 mybatis  
			 3.2.8  
		 


		<! -  mybatis spring插件 - > 
		 
			 org.mybatis  
			 mybatis-spring  
			 1.2.2  
		 


		<! -  mysql连接 - > 
		 
			 mysql  
			 mysql-connector-java  
			 5.1.34  
		 


		<! - 数据源 - > 
		 
			 com.alibaba < / groupId> 
			 druid  
			 1.0.12  
		 


		 
			 org.aspectj  
			 aspectjweaver  
			版本> 
		 


		<! -  json  - > 
		 
			 org.codehaus.jackson  
			 jackson-mapper-asl  
			 1.9.13  
		 


		< dependency>  
			com.alibaba  
			 fastjson  
			 1.2.3  
		 


		 
			 com.fasterxml。 jackson.core  
			 jackson-annotations  
			 $ {jackson.version}  
		 


		 
			 com.fasterxml.jackson.core  
			 jackson-core  
			 $ {jackson.version}  
		 


		 
			 com.fasterxml.jackson.core  
			 jackson- databind  
			 $ {jackson.version}  
		 
		<! - 文件上传 - > 
		 
			 commons-io  
			 commons-i o  
			 2.4  
		 


		 
			 commons-fileupload  
			 commons-fileupload  
			 1.2.2  
		 


		<! -  servlet  - > 
		 
			 javax.servlet  
			 javax.servlet-api  
			 3.0.1  
		 
	 

api-imp模块

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第10张图片


UserserviceImp

包org.dubbo.api.imp; 


import org.dubbo.api.dao.UserMapper; 
import org.dubbo.api.service.UserService; 
import org.dubbo.pojo.User; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 


@Service(“userService”)
public class UserServiceImp实现UserService { 


	@Autowired 
	UserMapper userMapper; 


	public User findById(int id){ 
		User us = userMapper.findById(1); 
		回归我们 
	} 


}
DubboMain

package org.dubbo.api.main; 


import java.io.IOException; 


import org.springframework.context.support.ClassPathXmlApplicationContext; 


public class DubboMain { 
	public static void main(String [] args)throws IOException { 
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String [] {“dubbo.xml”}); 
		context.start(); 
		System.in.read(); //按任意键退出
// 		Main.main(args); 
	} 
}

log4j的

### set log levels ###   
log4j.rootLogger = INFO,C,D,E    
  
### console ###   
log4j.appender.C = org.apache.log4j.ConsoleAppender   
log4j.appender.C.Target = System。 out   
log4j.appender.C.layout = org.apache.log4j.PatternLayout   
log4j.appender.C.layout.ConversionPattern = [%p] [%-d {yyyy-MM-dd HH:mm:ss}]%C。 %M(%L)| %m%n   
  
### log file ###   
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender   
log4j.appender.D.File = ../logs/ServerManager-Info.log   
log4j.appender.D.Append = true   
log4j.appender.D.Threshold = INFO    
log4j.appender.D.layout = org.apache.log4j.PatternLayout   
log4j.appender.D.layout.ConversionPattern = [%p] [%-d {yyyy-MM-dd HH:mm:ss}]%C.%M(%L)| %m%n   
  
### exception ###   
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender   
log4j.appender.E.File = ../logs/ServerManager-Error.log   
log4j.appender.E.Append = true   
log4j.appender.E.Threshold = ERROR    
log4j.appender.E.layout = org.apache.log4j.PatternLayout   
log4j.appender.E.layout.ConversionPattern = [%p] [%-d {yyyy-MM-dd HH :mm:ss}]%C.%M(%L)| %米%正  

dubbo.xml

<?xml version =“1.0”encoding =“UTF-8”?> 
	xmlns:dubbo =”http://code.alibabatech.com/schema/dubbo“ 
	xsi:schemaLocation =”http://www.springframework.org/schema/beans        
    http:// www。 springframework.org/schema/beans/spring-beans.xsd        
    http://code.alibabatech.com/schema/dubbo         
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd“> 
	<! - 提供方法应用信息 - > 
	 


	<! - 使用zookeeper注册中心暴露服务地址 - > 
	 


	<! - 用dubbo协议在20880端口暴露服务 - > 
	 
	<! - 声明需要暴露的服务接口 - > 
	 
	  
	 

db

driverClassName = com.mysql.jdbc.Driver 
url = jdbc:mysql:// localhost:3306 / wb ?? useUnicode = true&characterEncoding = UTF-8 
username = root 
password = 1234 
c3p0.pool.size.max = 20 
c3p0.pool。 size.min = 5 
c3p0.pool.size.ini = 3 
c3p0.pool.size.increment = 2

applicationMabatis

<?xml version =“1.0”encoding =“UTF-8”?> 
	xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance“xmlns:aop =”http://www.springframework.org/schema/aop“ 
	xmlns:tx =” http://www.springframework.org/schema/tx“xmlns:context =”http://www.springframework.org/schema/context“ 
	xsi:schemaLocation =” 
        http://www.springframework.org/schema/ beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc .xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd 
http://www.springframework.org/schema/tx 
     http:/ /www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop.xsd“> 




	<! - 加载配置文件 - > 
	 


	<! - 数据源,使用dbcp  - > 
	 
		 
		 
		 
		 
		<! -   			/>  			value =”$ {c3p0.pool.size .increment}“/>  - > 
	 


	<! -  sqlSessionFactory  - > 
	 
		<! - 加载mybatis的配置文件 - - > 
		<属性名= “typeAliasesPackage”值= “org.dubbo.pojo”>  
		<属性名= “mapperLocations”值= “类路径:组织/多宝/ API /刀/ * XML”/> 
		< ! -数据源- > 
		<属性名= “数据源” REF = “数据源”/> 
	 




	<! -映射器批量扫描 从映射器包中扫描出映射器接口,自动创建代理对象并且在弹簧容器中注册- > 
	<! -自动扫描出来的映射器的豆的ID为映射器类名(首字母小写) - > 
	<! - - 扫描多个包用,分开 - > 
	 
		 
		 
	 


	<! - 事物管理器对于mybatis操作数据库事物控制,spring使用Jdbc的事物控制类 - > 
	 
		<! - 数据源dataSource在applicationContext-dao.xml中配置了 - > 
		  
	 
	<! - 通知 - > 
	 
		 
			<! - 传播行为 - > 
			 
			 
			 
			 
			 
			 
			 
		 
	 
	<! -  aop  - > 
	 
		 
	 

好到这里该去试下dubbo和zoopeeker通不通了找到DubooMain类运行主方法控制台没报错说明已经成功

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第11张图片
相应zoopeeper命令行也会有动荡  

下面开始整合springmvc + mybatis

找到新建的api-imp模块

新建dao  包

springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第12张图片springMVC+mybatis+dubbo实现SOA架构 以及数据查询_第13张图片

还有对应的xml你可以自动生成也可以手动写我这里手动写了UserMapper.xml

<?xml version =“1.0”encoding =“UTF-8”?> 
<!DOCTYPE mapper 
 PUBLIC“ -  // mybatis.org//DTD Mapper 3.0 // EN” 
“http://mybatis.org/dtd/mybatis -3-mapper.dtd“>