标签:Dubbo 第一个 dubbo boot 程序 springframework org import public
1.新建api接口
/**
* API接口,provider和consumer都要去引入这个接口
*/
public interface DemoDubboService {
public String demo(String param);
}
2.新建provider
-
pom依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.7.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> </dependencies>
-
application.yml
dubbo: application: name: dubbo-provider registry: address: zookeeper://127.0.0.1:2181
-
实现接口
import com.msb.dubbo.service.DemoDubboService; import org.apache.dubbo.config.annotation.Service; /** * 此类为接口的实现类, * Service注解为apache的@Service.此注解是区分项目是Provider还是Consumer最重要依据 */ @Service public class DemoDubboServiceImpl implements DemoDubboService { public String demo(String param) { System.out.println("执行demo"); return param + "123"; } }
-
启动类
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 必须要有@EnableDubbo注解,否则Dubbo不生效。 */ @SpringBootApplication @EnableDubbo public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
3.新建consumer
-
pom依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.7.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> </dependencies>
-
application.yml
dubbo: application: name: dubbo-cunsumer registry: address: zookeeper://127.0.0.1:2181
-
Service类
import com.msb.dubbo.service.DemoDubboService; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Service; /** * 调用服务使用@Reference注解org.apache.dubbo.config.annotation.Reference; */ @Service public class DemoService{ @Reference private DemoDubboService demoDubboService; public String demo() { return demoDubboService.demo("张三丰"); } }
-
Controller类
import com.msb.service.DemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DemoController { @Autowired private DemoService demoService; @RequestMapping("/demo") @ResponseBody public String demo() { return demoService.demo(); } }
-
启动类
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @EnableDubbo public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
标签:Dubbo,第一个,dubbo,boot,程序,springframework,org,import,public 来源: https://www.cnblogs.com/ZT-666/p/15942987.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。