import

org.springframework.boot

spring-boot-starter-actuator

org.springframework.boot

spring-boot-starter-web

com.alibaba.cloud

spring-cloud-starter-dubbo

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

注意:

必须包含**spring-boot-starter-actuator**包,不然启动会报错。 **spring-cloud-starter-dubbo**包需要注意groupId,根据具体使用的spring cloud alibaba版本依赖来确定。 如果使用孵化版本,使用的groupId为:org.springframework.cloud 如果使用毕业版本,使用的groupId为:com.alibaba.cloud 以上引用未指定版本,需显示的声明****

创建子工程 dubbo_api

API模块,存放Dubbo服务接口和模型定义,非必要,这里创建仅为更好的代码重用以及接口、模型规格控制管理。

定义抽象接口HelloService.java:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_api/src/main/java/com/springcloud/dubbo_api/service/HelloService.java

public interface HelloService {

String hello(String name);

}

创建子工程 dubbo_provider ,Dubbo服务提供方

工程依赖pom.xml如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_provider/pom.xml

com.springcloud.book

ch13_1_dubbo_api

${project.version}

此处引入公共API模块。

实现Dubbo接口,HelloServiceI.java如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_provider/src/main/java/com/springcloud/dubbo_provider/service/HelloServiceI.java

@Service

public class HelloServiceI implements HelloService {

@Override

public String hello(String name) {

return "Hello " + name;

}

}

注意:这里的**@Service注解并不是来自Spring的org.springframework.stereotype.Service,而是Dubbo的org.apache.dubbo.config.annotation.Service,千万不要引用错误。这里的@Service**注解仅声明该Java服务(本地)实现为Dubbo服务。

配置文件 application.yml 需要将Java服务(本地)配置为 Dubbo 服务(远程)如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_provider/src/main/resources/application.yml

server:

port: 8000

dubbo:

scan:

base-packages: com.springcloud.book.ch13_1_dubbo_provider.service

protocol:

name: dubbo

port: -1

registry:

address: spring-cloud://192.168.44.129

spring:

application:

name: dubbo-spring-cloud-provider

cloud:

nacos:

discovery:

server-addr: 192.168.44.129:8848

main:

allow-bean-definition-overriding: true

注意:在暴露Dubbo服务方面,推荐使用外部化配置的方式,即指定Java服务实现类的扫描基准包。

Dubbo Spring Cloud 继承了 Dubbo Spring Boot 的外部化配置特性,也可以通过标注 @DubboComponentScan 来实现基准包扫描。

dubbo.scan.base-packages:指定 Dubbo 服务实现类的扫描基准包 dubbo.protocol:Dubbo服务暴露的协议配置,其中子属性name为协议名称,port为协议端口(-1 表示自增端口,从 20880 开始) dubbo.registry:Dubbo 服务注册中心配置,其中子属性address 的值 “spring-cloud://192.168.44.129”,说明挂载到 Spring Cloud 注册中心 spring.application.name:Spring 应用名称,用于 Spring Cloud 服务注册和发现。该值在 Dubbo Spring Cloud 加持下被视作**dubbo.application.name,因此,无需再显示地配置dubbo.application.name**。 spring.main.allow-bean-definition-overriding:在 Spring Boot 2.1 以及更高的版本增加该设定,因为 Spring Boot 默认调整了 Bean 定义覆盖行为。 spring.cloud.nacos.discovery:Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口。

创建应用主类Ch131DubboProviderApplication.java:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_provider/src/main/java/com/springcloud/dubbo_provider/DubboProviderApplication.java

@SpringBootApplication

@EnableDiscoveryClient

public class DubboProviderApplication {

public static void main(String[] args) {

SpringApplication.run(DubboProviderApplication.class, args);

}

}

创建子工程 dubbo_consumer ,服务调用方:

工程依赖pom.xml如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_consumer/pom.xml

com.springcloud.book

ch13_1_dubbo_api

${project.version}

工程配置application.yml如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_consumer/src/main/resources/application.yml

server:

port: 8080

dubbo:

protocol:

name: dubbo

port: -1

registry:

address: spring-cloud://192.168.44.129

cloud:

subscribed-services: dubbo-spring-cloud-provider

spring:

application:

name: dubbo-spring-cloud-consumer

cloud:

nacos:

discovery:

server-addr: 192.168.44.129:8848

main:

allow-bean-definition-overriding: true

dubbo.cloud.subscribed-services:表示要订阅服务的服务名,可以配置'*',代表订阅所有服务,不推荐使用。若需订阅多应用,使用 “,” 分割。

测试接口HelloController.java如下:

代码清单:Alibaba/dubbo-spring-cloud-demo/dubbo_consumer/src/main/java/com/springcloud/dubbo_consumer/controller/HelloController.java

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)

结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

Java互联网工程师面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

程序员代码面试指南–IT名企算法与数据结构题目最优解

其余像设计模式,建议可以看看下面这4份PDF(已经整理)

更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

.(img-OSbRhnQ8-1711932843878)]

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

程序员代码面试指南–IT名企算法与数据结构题目最优解

[外链图片转存中…(img-63VSiXkv-1711932843878)]

其余像设计模式,建议可以看看下面这4份PDF(已经整理)

[外链图片转存中…(img-1kWPfmUb-1711932843879)]

更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

[外链图片转存中…(img-EJr8kuO4-1711932843879)]

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: