远程调用的实现和注解配置
使用nacos作为注册中心:需要的配置
spring: datasource: //添加数据源 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/gulimall_sms?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: root password: 123456 application: #在注册中心添加服务 name: gulimall-coupon cloud: nacos:
discovery: //可写可不写,为了方便理解写了一个 server-addr: 127.0.0.1:8848 //指明注册中心的地址和端口,表明服务都是注册到这一个注册中心的端口, mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml #classpath*:/mapper/**/*.xml 表示扫描classpath类路径下和其依赖的所有jar包 global-config: db-config: id-type: auto server: port: 6000 //声明本服务的端口
@MapperScan("扫描的持久层包,为了能够连接数据库")
这个是在application.yml文件中声明持久层的配置信息
使用openfeign作为远程服务调用:在服务器启动端添加@EnableFeignClient("调用远程服务的包"),再启动服务器会自动扫描这个注解指定的包
调用远程服务的名字,@FeignClient(value = "调用远程服务的名字") value不能改成name,否则不能识别 这个注解表明这个接口可以调用远程服务
这个是远程调用的实现
配置中心配置:添加依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
在resource目录下新建bootstrap.properties文件:
①、添加应用名
②、添加配置中心地址
然后需要在配置中心新建应用名.properties添加配置就可以了
最后在需要的controller添加 @RefreshScope注解:动态获取刷新配置
@Value(${}) :动态获取value值
就可以了