您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
我们使用maven的空项目,不用任何模板直接创建

输入项目信息

idea会自动去掉横线,自己加上

在项目中新建空Maven的module如下:

父项目依赖文件:使用dependencyManagement做依赖管理
<?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>io.ilss.dubbo</groupId>
<artifactId>spring-boot-dubbo-ilss</artifactId>
<version>1.0</version>
<modules>
<module>ilss-provider</module>
<module>ilss-service</module>
<module>ilss-consumer</module>
</modules>
<packaging>pom</packaging>
<properties>
<java.version>1.8</java.version>
<spring-boot.version>2.0.3.RELEASE</spring-boot.version>
<dubbo-boot.version>0.2.0</dubbo-boot.version>
<mybatis-boot.version>2.0.0</mybatis-boot.version>
<druid.version>1.1.10</druid.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Dubbo -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${dubbo-boot.version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-boot.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- dubbo官方提供的repository -->
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories></project>provider的依赖
<?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"> <parent> <artifactId>spring-boot-dubbo-ilss</artifactId> <groupId>io.ilss.dubbo</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ilss-provider</artifactId> <dependencies> <!-- 本地模块依赖 --> <dependency> <groupId>io.ilss.dubbo</groupId> <artifactId>ilss-service</artifactId> <version>1.0</version> </dependency> <!-- 框架依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build></project>
provider的yml配置文件
spring: application: name: ilss-provider datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/xxx?useSSL=false username: root password: xxxmybatis: mapperLocations: classpath:mapper/*.xmldubbo: registry: protocol: zookeeper address: 127.0.0.1:2181 id: registry-1 protocol: port: 20888 name: dubbo id: dubbo status: server application: name: ilss-provider id: ilss-provider scan: basePackages: io.ilss.dubbo.service.impl provider: version: 1.0
provider的启动类
package io.ilss.dubbo;import org.springframework.boot.WebApplicationType;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;/**
* className IlssProviderApplication
* description IlssProviderApplication
*
* @author feng
* @version 1.0
* @date 2019-01-30 18:08
*/@SpringBootApplicationpublic class IlssProviderApplication { public static void main(String[] args) { //由于Provider不需要web服务,所以我们使用new SpringApplicationBuilder时web指定NONE
new SpringApplicationBuilder(IlssProviderApplication.class).web(WebApplicationType.NONE).run(args);
}
}consumer依赖
<?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"> <parent> <artifactId>spring-boot-dubbo-ilss</artifactId> <groupId>io.ilss.dubbo</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ilss-consumer</artifactId> <dependencies> <dependency> <groupId>io.ilss.dubbo</groupId> <artifactId>ilss-service</artifactId> <version>1.0</version> </dependency> <!-- 框架依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- dubbo --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> </dependency> <!-- boot-web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies></project>
consumer的yml配置文件
server: port: 8080dubbo: application: id: ilss-consumer name: ilss-consumer registry: protocol: zookeeper address: 127.0.0.1:2181 id: registry-1 protocol: name: dubbo port: 20889 consumer: version: 1.0spring: application: name: ilss-consumer
consumer的启动类
package io.ilss.dubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/**
* className IlssConsumerApplication
* description IlssConsumerApplication
*
* @author feng
* @version 1.0
* @date 2019-01-30 18:18
*/@SpringBootApplicationpublic class IlssConsumerApplication { public static void main(String[] args) {
SpringApplication.run(IlssConsumerApplication.class);
}
}service接口:在service中新建interface TestService

代码如下:
package io.ilss.dubbo.service;/**
* className TestService
* description TestService
*
* @author feng
* @version 1.0
* @date 2019-01-30 18:07
*/public interface TestService { String test(String text);
}在provider中新建ServiceImpl

代码如下:
package io.ilss.dubbo.service.impl;import com.alibaba.dubbo.config.annotation.Service;import io.ilss.dubbo.service.TestService;/**
* className TestServiceImpl
* description TestServiceImpl
*
* @author feng
* @version 1.0
* @date 2019-01-30 18:08
*/@Service(
version = "${dubbo.provider.version}",
application = "${dubbo.application.id}",
protocol = "${dubbo.protocol.id}",
registry = "${dubbo.registry.id}")public class TestServiceImpl implements TestService { @Override
public String test(String text) { return "Success! Your String is " + text;
}
}Consumer中添加测试的TestController
package io.ilss.dubbo.web;import com.alibaba.dubbo.config.annotation.Reference;import io.ilss.dubbo.service.TestService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;/**
* className TestController
* description TestController
*
* @author feng
* @version 1.0
* @date 2019-01-30 18:19
*/@RestControllerpublic class TestController { private static final Logger logger = LoggerFactory.getLogger(TestController.class); @Reference
private TestService testService; @GetMapping("/test") public String test(@RequestParam String text) {
logger.info("text value : {}",text); return testService.test(text);
}
}完整结构

运行
启动Zookeeper端口为2181,怎么安装启动自行Google
启动IlssProviderApplication
启动IlssConsumerApplication
游览器访问http://localhost:8080/test?text=abc 看到如下页面和log即完成


免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。