热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

(干货分享)分布式开发-Maven多模块聚合项目

知了堂姐
2024-07-08 17:22:16
0

在分布式开发项目中,聚合项目搭建非常重要。后面的zookeeper + dobbo,我们采用聚合项目来完成。


内容:

搭建聚合项目


再次将前面的zookeepr + dubbo入门demo变为聚合项目的工程结构


最后,测试在聚合项目中是否能够运行zookeeper + dubbo的程序


搭建聚合项目

第一步:创建parent项目,我们把项目名称取名为dubbo,注意这里不勾选模板

第二步:输入坐标和模块的名称

第三步:设置工程的路径

第四步:把刚创建好的dubbo工程里面的src目录去掉。因为此工程主要用来管理第三方依赖

第五步:创建子模块

选中dubbo项目,然后鼠标右键new->Module

还是选择Maven的项目,继续不选择模板,直接下一步

输入子模块的名称

创建好的子模块的工程结构如下

注意查看父模块(dubbo)和子模块(dubbo-provider)的pom.xml文件之间的关系

按照上面的子模块创建方式,我们在创建dubbo-customer子模块

第六步:将创建好的子模块设置为maven-webapp的项目

选中子模块dubbo-provider,然后找到open module settings的选项

在打开的页面中,先选择dubbo-provider,然后点击左上角的+号,选择web

下面是设置web相关的属性选项,请大家按照如下截图进行操作

OK ,至此,我们就将dubbo-provider成功的改造成了一个web项目,此时我们的项目结构如下

最后,我们再将dubbo-customer也改造为web模块

上面的聚合环境初步搭建,我们开始搭建dubbo的环境。再后面的编写后过程中,我们还会对pom.xml文件进行修改

我们先搭建dubbo的服务提供者,dubbo-provider

第一步:配置dubbo所需要的pom.xml文件



    
        dubbo
        com.zlt
        1.0-SNAPSHOT
    
    4.0.0

    war
    dubbo-provider

    
        
            junit
            junit
            4.11
            test
        

        
            org.springframework
            spring-webmvc
            4.0.3.RELEASE
        

        
            com.alibaba
            dubbo
            2.5.3
            
                
                    org.springframework
                    spring
                
            
        

        
            org.apache.zookeeper
            zookeeper
            3.4.6
            pom
        

        
        
            com.github.sgroschupf
            zkclient
            0.1
        

        
            log4j
            log4j
            1.2.16
        

    

    
        
            
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.2
                    
                        8081
                        /
                        UTF-8
                        tomcat7
                    
                
            
        
    

第二步:加入log4j.properties日志文件

log4j.rootLogger=INFO,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

第三步:编写spring.xml文件,里面加入dubbo的相关配置信息




    
    
    


第四步:修改web.xml文件,加入Listener监听,并加载spring配置文件



    
        contextConfigLocation
        classpath:spring/spring.xml
    

    
        org.springframework.web.context.ContextLoaderListener
    

第五步:添加业务层接口

package com.zlt.service;

public interface UserService {
    public String getName();
}

第六步:编写实现业务层的类

package com.zlt.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.zlt.service.UserService;

@Service
public class UserServiceImpl implements UserService {
    public String getName() {
        return "zhiliaotang...";
    }
}

搭建dubbo的消费者,dubbo-customer

第一步:所需maven环境和dubbo-provider一样,这里参考上面的代码

第二步:加入log4j.properties文件,这里参考上面的代码

第三步:加入spring-mvc.xml文件,并添加dubbo的配置信息




    

    
    
    


第四步:配置springmvc的DispatcherServlet



    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceEncoding
            true
        
    

    
        characterEncodingFilter
        /*
    

    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring/spring-mvc.xml
        
    
    
        springmvc
        /
    

第五步:编写接口代码,在接口代码里面依赖注入UserService

备注:@Reference 这个注解类似@Autowired,但是这里必须使用dubbo的依赖注入

package com.zlt.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.zlt.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {

    @Reference
    private UserService userService;

    @RequestMapping("/index")
    @ResponseBody
    public String index() {
        return userService.getName();
    }
}

第六步:通过调用IndexController接口的方法,测试是否能够通过dubbo+zookeeper找到一个801服务提供的UserService接口提供的功能。

好了,今天的内容就分享到这里了噢!下次给大家分享《分布式开发-dubbo管理中心的部署》,请持续关注哦!

祝贺知了堂教材出版

大家都在看

Java工程师薪资待遇怎么样——Java常见问题

2024-07-08 浏览次数:0

2023夏令营启动:信安&开发岗位群就业...

2024-07-08 浏览次数:0

学网络安全培训哪家好?权威指南助你选对优质培训机...

2024-07-08 浏览次数:0

美公布2020财年预算,国防部96亿美元资助网络...

2024-07-08 浏览次数:0

0基础可以学前端吗?没有计算机基础可以学前端

2024-07-08 浏览次数:0

渗透测试怎么学?这个完美学习路线应该可以帮助你!

2024-07-08 浏览次数:0
最新资讯
com.github.sgroschupf zkclient 0.1 log4j log4j 1.2.16 org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8081 / UTF-8 tomcat7

第二步:加入log4j.properties日志文件

log4j.rootLogger=INFO,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

第三步:编写spring.xml文件,里面加入dubbo的相关配置信息




    
    
    


第四步:修改web.xml文件,加入Listener监听,并加载spring配置文件



    
        contextConfigLocation
        classpath:spring/spring.xml
    

    
        org.springframework.web.context.ContextLoaderListener
    

第五步:添加业务层接口

package com.zlt.service;

public interface UserService {
    public String getName();
}

第六步:编写实现业务层的类

package com.zlt.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.zlt.service.UserService;

@Service
public class UserServiceImpl implements UserService {
    public String getName() {
        return "zhiliaotang...";
    }
}

搭建dubbo的消费者,dubbo-customer

第一步:所需maven环境和dubbo-provider一样,这里参考上面的代码

第二步:加入log4j.properties文件,这里参考上面的代码

第三步:加入spring-mvc.xml文件,并添加dubbo的配置信息




    

    
    
    


第四步:配置springmvc的DispatcherServlet



    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceEncoding
            true
        
    

    
        characterEncodingFilter
        /*
    

    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring/spring-mvc.xml
        
    
    
        springmvc
        /
    

第五步:编写接口代码,在接口代码里面依赖注入UserService

备注:@Reference 这个注解类似@Autowired,但是这里必须使用dubbo的依赖注入

package com.zlt.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.zlt.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {

    @Reference
    private UserService userService;

    @RequestMapping("/index")
    @ResponseBody
    public String index() {
        return userService.getName();
    }
}

第六步:通过调用IndexController接口的方法,测试是否能够通过dubbo+zookeeper找到一个801服务提供的UserService接口提供的功能。

好了,今天的内容就分享到这里了噢!下次给大家分享《分布式开发-dubbo管理中心的部署》,请持续关注哦!

祝贺知了堂教材出版

上一篇:校招护航计划——为春招做准备

下一篇:(原创干货)分布式开发-dubbo管理中心的部署

相关内容

热门资讯

就业课程介绍(Java+前端+... Java+大数据,前端全栈,信息安全
关于我们 请输入文章描述
0基础转行信安,他如何做到月薪... 转行并非简单的换份工作,而是我们在职场进行自我认同、重塑身份的一个过程。今天知了小姐姐为大家介绍一位...
【前端每日一题】什么是BFC?... 秋招马上就要开始了,小伙伴们最近在准备面试的东西没呢,知了姐今天将蛋糕哥整理的前端面试题共享出来,同...
cisp考试费用多少?cisp...   随着网络技术的快速发展,网络安全问题变得越来越重要。那么,CISP考试费用多少?CISP报名条件...
img标签的onerror事件... 1.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗? src 指定一个远程...
pythone 文件和数据格式... 关于 Python 对文件的处理,以下选项中描述错误的是
网络安全运维岗面试题及答案详解... 在当今数字化时代,网络安全运维工程师的角色变得愈发重要。为了保障网络安全,各个企业都需要拥有一支经验...
知了堂官网V3第一版内测邀请 经过几个月的加班加点,我们终于迎来了知了堂官网3.1.0版本 现正招募内测中
川农第一次线下拓展精彩瞬间 5月15日,知了堂的哥哥姐姐们携手企业拓展教练浩浩荡荡奔赴川农。
-->