基于SSM的dubbo的分布式项目框架搭建——提供者,消费者,api结构生成

结构搭建思路:

1)建立dubbo项目的结构
至少两个war包。一个jar包
jar包为公共引用的jar包,主要提供dubbo接口调用的接口和model
其余两个war包,一个是提供者,一个是消费者。

2)建立pom文件,
引入dubbo的jar包
引入dubbo以来的 jar包,因为dubbo有自己依赖的spring,所以maven排除一下。
引入spring 以及springmvc引用的jar包
引入数据源及数据链接的jar包
引入mybatis的jar包
引入日志打印的jar包
3)dubbo 提供者,消费者的配置
4)简单demo实现

基本jar包引入

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>com-dubbo-wk</groupId>
    <artifactId>parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>dubbo-provider</module>
        <module>dubbo-consumer</module>
        <module>dubbo-api</module>
    </modules>


    <properties>
        <spring.version>5.0.2.RELEASE</spring.version>
        <slf4j.version>1.7.18</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>


    <dependencies>

        <!--***********************************dubbojar包*************************************-->

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.9</version>
        </dependency>
        <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <!--************************************************************************-->

        <!--***********************************spring jar包*************************************-->

        <!-- 添加spring核心依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--完成IOC和di的包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <scope>test</scope>
            <version>${spring.version}</version>
        </dependency>

        <!--spring依赖转json的jar-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>

        <!--********************************************************************************-->


        <!--***********************************数据库连接配置*************************************-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/druid  druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>

        <!--***********************************mybatis jar包*************************************-->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis mybatisjar包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--  mybatis和spring的整合包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--********************************************************************************-->

        <!--***************************日志打印的jar包*********************************************-->
        <!-- 添加日志相关jar包 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    </dependencies>

    
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

项目结构就不用说了,这个比较简单。按照自己的喜好,命名建立包,类等就好了。

本人的项目配置



provider.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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">
    <dubbo:application name="dubbo-provider"/>
    <dubbo:registry address="zookeeper://localhost:2181"/>
    <bean id="demoService" class="dubbo.wk.service.impl.DemoServiceImpl"/>
    <dubbo:service interface="dubbo.wk.service.IDemoService" ref="demoService"/>
</beans>

consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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">

    <dubbo:application name="dubbo-consumer"/>
    <dubbo:registry address="zookeeper://localhost:2181"/>
    <dubbo:reference id="demoService" interface="dubbo.wk.service.IDemoService"/>
    <bean id="demoController" class="dubbo.wk.controller.DemoController">
        <property name="iDemoService" ref="demoService"/>
    </bean>
</beans>

提供者启动

public class provider {
    public static void main(String[] args)throws Exception {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:dubbo-provider.xml");
        context.start();
        System.in.read();
    }
}

消费者启动

public class consumer {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:dubbo-consumer.xml");
        DemoController controller = (DemoController) context.getBean("demoController");
        controller.sayHelloWorld("武刚鹏");

    }
}

后台代码

public class DemoController {
    @Autowired
    private IDemoService iDemoService;

    public void setiDemoService(IDemoService iDemoService) {
        this.iDemoService = iDemoService;
    }

    //世界你好
    public void sayHelloWorld(String userName) {
        String info = new String("Hello World!");
        DemoRemoteModel model = iDemoService.findDemoModel();
        System.out.println(model.getUserName() + ":" + info);
    }
}

public class DemoServiceImpl implements IDemoService {
    @Override
    public DemoRemoteModel findDemoModel() {
        DemoRemoteModel model = new DemoRemoteModel();
       model.setId(1L);
       model.setUuid(UUID.randomUUID().toString().replaceAll("-",""));
       model.setUserName("武刚鹏");
       return model;
    }
}

遇到问题:

    一些jar包无法从中央仓库下载,于是进入官网,手动把jar下载,然后安装到本地仓库。

安装命令:mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar 

附上本人的安装截图


大家继续期待我的下一篇 ssm框架配置哦


猜你喜欢

转载自blog.csdn.net/wgp15732622312/article/details/80145127
今日推荐