最完整的Maven创建多模块Dubbo+zookeeper=SOA架构搭建SSM项目

第一次使用SSM集成Dubbo

简单的SSM+Dubbo做微服务,也出现了很多的问题,毕竟第一次嘛,哈哈,别想多了,熟能生巧。

完整的SpringBoot集成Dubbo

具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。
具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。
具体是Servic的实现类和Controller层怎么使用看本章节最后面 有具体的代码演示。

不多说了;直接上代码和截图。

首先我们要搭建好一个Maven项目

|----parent模块

	|-----conten聚合工程模块

	|       |------pojo类

    |       |------dao层

    |       |------service接口层
    				|------impl (service实现层)

	|-----common公共组件

    |-----web表现层

Parent父类模块:集中管理项目中所有需要jar包的版本,打包方式为pom;

Conten聚合工程模块:继承parent模块,集中管理pojo、dao、serivice各层组件,conten模块打包方式为pom包;

pojo继承Conten模块,存放实体类,打包为jar;

dao继承Conten模块,负责与数据库交互,打包为jar;

service接口继承Conten模块,提供服务模块的抽象接口,为暴露对外访问接口,打包为war;

common公共组件模块:继承parent模块,管理公共组件,如log4j等,打包为jar;

------------------  ↑ 上面是参考别人的    其实有很多种方式  下面是我自己搭建的。 

我个人觉得没有必要做聚合工程 总之你知道哪个服务做啥的就行 其实都是一个服务提供者 (Provider) 和一个是服务消费者 (Consumer) 。当然Dubbo不止这两个组件。
最完整的Maven创建多模块Dubbo+zookeeper=SOA架构搭建SSM项目_第1张图片
接下来看我们的服务消费者
最完整的Maven创建多模块Dubbo+zookeeper=SOA架构搭建SSM项目_第2张图片
做什么事都要有先后顺序。房子还需要设计师把房子设计好,房子的构造图画出来。

不了解Dubbo的可以先去看下Dubbo可以做那些事情。

http://dubbo.apache.org/en-us/

operation-parent 的pom.xml



    4.0.0

    com.*.parent
    operation-parent
    pom
    1.0-SNAPSHOT
    
	
    
        operation-service
    

    
    
        4.12
        4.2.4.RELEASE
        1.3.2
        1.2.15
        5.1.32
        1.6.4
        2.4.2
        1.0.9
        4.3.5
        1.2
        2.5
        3.3.2
        1.3.2
        3.3
        3.4.2-fix
        0.9.1
        1.3.1
        2.7.2
        2.5.3
        3.4.7
        0.1
        4.5.10
    

    
        
            
            
                joda-time
                joda-time
                ${joda-time.version}
            
            
            
                org.apache.commons
                commons-lang3
                ${commons-lang3.version}
            
            
                org.apache.commons
                commons-io
                ${commons-io.version}
            
            
                commons-net
                commons-net
                ${commons-net.version}
            
            
            
                com.fasterxml.jackson.core
                jackson-databind
                ${jackson.version}
            
            
            
                org.apache.httpcomponents
                httpclient
                ${httpclient.version}
            

            
            
                junit
                junit
                ${junit.version}
                test
            
            
            
                org.slf4j
                slf4j-log4j12
                ${slf4j.version}
            

            
                org.mybatis
                mybatis-spring
                ${mybatis.spring.version}
            
            
                com.github.miemiedev
                mybatis-paginator
                ${mybatis.paginator.version}
            
            
                com.github.pagehelper
                pagehelper
                ${pagehelper.version}
            
            
            
            
                mysql
                mysql-connector-java
                5.1.21
            
            
            
                com.alibaba
                druid
                ${druid.version}
            
            
            
                org.springframework
                spring-context
                ${spring.version}
            
            
                org.springframework
                spring-beans
                ${spring.version}
            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            
            
                org.springframework
                spring-aspects
                ${spring.version}
            
            
                org.springframework
                spring-jms
                ${spring.version}
            
            
                org.springframework
                spring-context-support
                ${spring.version}
            
            
            
                commons-fileupload
                commons-fileupload
                ${commons-fileupload.version}
            
            
            
                redis.clients
                jedis
                ${jedis.version}
            
            
            
                cn.hutool
                hutool-all
                ${hutool.version}
            

            
            
                com.alibaba
                dubbo
                ${dubbo.version}
            
            
                org.apache.zookeeper
                zookeeper
                ${zookeeper.version}
            
            
                com.github.sgroschupf
                zkclient
                ${zkclient.version}
            

        
    

    
        
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.2
                
                    true
                    true
                
            

            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.7.0
                
                    1.8
                    1.8
                
            
        
    


operation-service的pom.xml 这是我自己的搭建的 我觉得聚合工程比较麻烦,就没有区分什么Api,pojo,service。如果是要搭建聚合的直接在 operation-service 下面建四个模块Api和pojo为jar 而service为War包 ,operation-service就是pom,

|----parent模块
	|-----conten聚合工程模块

	|       |------pojo类

    |       |------dao层

    |       |------service接口层
    				|------impl (service实现层)
    				
	|-----common公共组件

    |-----web表现层


    
        operation-parent
        com.*.parent
        1.0-SNAPSHOT
    
    4.0.0

    operation-service
    war

    

        
        
            org.springframework
            spring-context
        
        
        
            junit
            junit
            ${junit.version}
            test
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-webmvc
        
        
            org.springframework
            spring-jdbc
        
        
            org.springframework
            spring-aspects
        
        
        
            com.alibaba
            druid
            ${druid.version}
        
        
        
            org.mybatis
            mybatis
            3.4.5
        
        
            mysql
            mysql-connector-java
            5.1.38
        
        
            org.mybatis
            mybatis-spring
            ${mybatis.spring.version}
        
        
            com.github.miemiedev
            mybatis-paginator
            ${mybatis.paginator.version}
        
        
            com.github.pagehelper
            pagehelper
            ${pagehelper.version}
        
        
        
            redis.clients
            jedis
            ${jedis.version}
        
        
            org.springframework
            spring-context-support
        
        
        
            cn.hutool
            hutool-all
        
        
        
            com.alibaba
            dubbo
            
                
                    org.springframework
                    spring
                
                
                    org.jboss.netty
                    netty
                
            
        
        
            org.apache.zookeeper
            zookeeper
        
        
            com.github.sgroschupf
            zkclient
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.8
        

        
            org.projectlombok
            lombok
            1.16.18
            provided
        
    

    
        
            
                src/main/java
                
                    **/*.xml
                
                true
            
        
    


接下来我们看Service的配置文件;
先看图
最完整的Maven创建多模块Dubbo+zookeeper=SOA架构搭建SSM项目_第3张图片
resources 下面分三层 conf、mybatis、spring
confmybatis应该不用说吧,SSM不懂的先去看SSM吧;我还是把代码贴出来吧

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.*.*:3306/aa?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=root

mybatis.xml




	
		
		
		
		
	
	

spring下面的【配置文件分的很清楚】
applicationContext-dao.xml 数据层



	
	
	
	
		
		
		
		
		
		
	
	

	
		
		
		
		
		
	
	
		
	

applicationContext-service.xml 服务层
zookeeper不会配置的请看这里
https://baijiahao.baidu.com/s?id=1623612116325629735&wfr=spider&for=pc


	
	
	
	
	
	
	
	
	
	
	
	

	
	

applicationContext-trans.xml 事物


	
	
		
		
	
	
	
		
			
			
			
			
			
			
			
			
			
			
		
	
	
	
		
	


operation-service web.xml



  operation

	
	
		contextConfigLocation
		classpath:spring/applicationContext-*.xml
	
	
		org.springframework.web.context.ContextLoaderListener
	

服务调用者(Consumer)

最完整的Maven创建多模块Dubbo+zookeeper=SOA架构搭建SSM项目_第4张图片
resources
springmvc.xml 服务调用者



	
	
	
	

	
	
	
	
	
	

web.xml



  operation-web
	
	
		CharacterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			utf-8
		
	
	
		CharacterEncodingFilter
		/*
	

	
	
		operation
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring/*.xml
		
		1

	
	
		operation
		/
	
  

接下来看我们怎么使用 (Provider)
Pojo 类 记得实现序列化)

public class SysDevice implements Serializable {
}  

ServiceImpl类-注解

@Service Spring的

@Service
@Component
public class DeviceServiceImpl implements DeviceService {
	@Autowired
    private SysDeviceMapper deviceMapper;
    
    @Override
    public String getDeviceByName(String name) {
    	return "hi:"+name;
    }

服务的消费者 (Consumer)
Cotroller

@Controller
@RequestMapping(value = "/v1/operation")
public class UserController {

    @Autowired
    private UserService userService;
    
	@RequestMapping(value="/name", method=RequestMethod.GET)
    public String getDeiceByName(@RequestParam String name) {
    
    	return  deviceService.getDeviceByName(name);
    }
}

请看下一篇SpringBoot+Dubbo;
https://blog.csdn.net/hehaimingg/article/details/92789089

SSM+Dubbo大概是这样 如有不懂的请加

你可能感兴趣的:(架构)