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 |
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
@EnableDiscoveryClient
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
}
启动测试
集成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中,编写对应的接口信息
interface DemoFegin {
String index()
}
在服务消费者Demo中,编写消费接口
class TestController {
static responseFormats = ['json', 'xml']
@Autowired
DemoFegin demoFegin
def index() {
render demoFegin.index()
}
}
在服务消费启动类上添加Feign注解
"nacos.fegin"]) (basePackages = [
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
}
server:
port: 8082
servlet:
/${spring.application.name} :
spring:
application:
name: nacos-fegin
cloud:
nacos:
discovery:
enabled: true
127.0.0.1:8848 :
service: ${spring.application.name}
zuul:
url: http://49.233.35.60/:8848
nacos-demo :
启动测试
启动测试如下:
下面是跨服务调用:
http://grails.ejlchina.com/guide/#grails-简介
https://gitee.com/huajiangliangliang/grails-demo
以上是关于Grails项目整合nacos和feign的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud + Nacos 简单注册消费例子 | Feign调用
商城项目04_SpringCloud Alibaba概述Nacos作为注册配置中心声明式远程调用Feign