Grails项目整合nacos和feign

Posted 花匠程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grails项目整合nacos和feign相关的知识,希望对你有一定的参考价值。

Grails简介


 Java 领域中众多现有的 Web框架 都相对比较复杂,并且大多没有很好的遵循 DRY(不重复自己)规则。像 Rails 和 Django 这样的动态框架帮助了我们以更现代化的方式思考 Web应用程序。Grails 构建于这些概念之上,并极大地降低了在 Java 平台上构建web应用程序的复杂性。但是,它的不同之处在于,它构建在 Spring 和 Hibernate 等已有的 Java技术栈之上。


Grails是一个全栈框架,它试图通过一些核心技术及其相关插件来解决 Web 开发中的诸多难题,比如:

  • GORM - 一个易于使用的 ORM 库,支持 SQL、MongoDB、Neo4j 等

  • 用于渲染 html 和 JSON 的视图技术

  • 基于 Spring Boot 的控制器

  • 有数百个插件的插件系统

  • 灵活的 profiles 可创建 与AngularJS,React ,vue等应用程序

  •  基于 Gradle 的可交互的命令行环境和构建系统

  • 一个已配置为热加载的内置 Tomcat 容器


Demo所用到的版本对应关系

Grails Groovy JVM Gradle
4.0.3 3.0.2 1.8.0_171 6.2.2

Grails4所支持的SpringBoot相关版本


Spring  Spring Boot Spring Cloud Spring Cloud Alibaba
 5.1.x   2.1.x  Spring Cloud Greenwich 2.1.x
集成nacos实现服务注册与发现demo
dependencyManagement { dependencies { dependency group: 'com.alibaba.cloud',  name: 'spring-cloud-alibaba-dependencies', version: '2.1.1.RELEASE', ext: 'pom' }}//在dependecis{}中添加compile group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-nacos-discovery',version: '2.1.1.RELEASE'
server: port: 8081 servlet: context-path: /${spring.application.name}spring: application: name: nacos-demo cloud: nacos: discovery: enabled: true server-addr: 127.0.0.1:8848 service: ${spring.application.name}---grails: profile: rest-api

在项目启动类添加@EnableDiscoveryClient注解

@CompileStatic@EnableDiscoveryClientclass Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) }}

启动测试



Grails项目整合nacos和feign

Grails项目整合nacos和feign

集成Feign实现服务调用


引用配置

dependencyManagement { dependencies { dependency group: 'org.springframework.cloud',  name: 'spring-cloud-dependencies',  version: 'Greenwich.SR4', ext: 'pom' dependency group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-dependencies', version: '2.1.1.RELEASE', ext: 'pom' }}dependencies { compile group: 'com.alibaba.cloud',  name: 'spring-cloud-alibaba-nacos-discovery',  version: '2.1.1.RELEASE' compile group: 'org.springframework.cloud',  name: 'spring-cloud-starter-openfeign',  version: '2.1.5.RELEASE' ...}

编写服务提供类


在上一个demo里面编写,把上一个demo当作服务提供方

class DemoController { static responseFormats = ['json', 'xml']  def index() { render 'index'    }}

在服务消费者Demo中,编写对应的接口信息

@FeignClient(name="nacos-demo", url ="http://localhost:8081/nacos-demo" )interface DemoFegin { @GetMapping("/demo") String index()}

在服务消费者Demo中,编写消费接口



class TestController { static responseFormats = ['json', 'xml']
@Autowired DemoFegin demoFegin
def index() { render demoFegin.index() }
}

在服务消费启动类上添加Feign注解


@CompileStatic@EnableDiscoveryClient@EnableFeignClients(basePackages = ["nacos.fegin"])class Application extends GrailsAutoConfiguration { static void main(String[] args) { GrailsApp.run(Application, args) }}
server: port: 8082 servlet: context-path: /${spring.application.name}spring: application: name: nacos-fegin cloud: nacos: discovery: enabled: true server-addr: 127.0.0.1:8848 service: ${spring.application.name}zuul: url: http://49.233.35.60/:8848    CICDATAMANAGE: nacos-demo

启动测试

Grails项目整合nacos和feign

Grails项目整合nacos和feign

启动测试如下:

下面是跨服务调用:



http://grails.ejlchina.com/guide/#grails-简介https://gitee.com/huajiangliangliang/grails-demo

以上是关于Grails项目整合nacos和feign的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud + Nacos 简单注册消费例子 | Feign调用

05-Nacos-Feign-Gateway项目配置使用

06.Nacos Feign 负载均衡

商城项目04_SpringCloud Alibaba概述Nacos作为注册配置中心声明式远程调用Feign

第163天学习打卡(项目 谷粒商城5 SpringCloud Alibaba Feign Nacos)

15Feign整合断路器监控Hystrix Dashboard