Solon2 之 Groovy 语言开发后端接口项目

Posted 带刺的坐椅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solon2 之 Groovy 语言开发后端接口项目相关的知识,希望对你有一定的参考价值。

今天再做个新的尝试,用 Solon 框架写个 Groovy 后端项目。借助 “Solon Initializr” 生成个项目模板,会比较方便。

1、生成项目模板

打开“Solon Initializr” :https://solon.noear.org/start/ ,在语言那儿选择"
Groovy",再选上项目类型为“Gradle - Groovy”。然后点“生成”就会自动下载"demo.zip"文件了。

2、看看主要的代码

解压 "demo.zip" 就可以看到项目代码了。看看主要的几个类。

启动主类

package com.example.demo

import org.noear.solon.Solon
import org.noear.solon.annotation.SolonMain

@SolonMain
class App 
    static void main(String[] args)
        Solon.start(App.class, args)
    

生成的控制器

package com.example.demo

import org.noear.solon.annotation.Controller
import org.noear.solon.annotation.Mapping
import org.noear.solon.annotation.Param

@Controller
class DemoController 
    @Mapping("/hello")
    String hello(@Param(defaultValue = "world") String name) 
        return String.format("Hello %s!", name)
    

简单改造一下控制器,增加一个输出 json 的接口

class DemoVo 
     int id
     String name
 

@Controller
class DemoController 
    @Mapping("/hello")
    String hello(@Param(defaultValue = "world") String name) 
        return String.format("Hello %s!", name)
    

    @Mapping("/json")
    DemoVo json() 
        return DemoVo(1, "")
    

3、跑个内置的单测

生成的模板项目,已经内置了单测了。就跑一下它:

内测 ok!

Solon 生态插件清单

Solon 是一个微型的Java开发框架。强调,克制 + 简洁 + 开放的原则;力求,更小、更快、更自由的体验。支持:RPC、REST API、MVC、Micro service、WebSocket、Socket 等多种开发模式。

Solon Cloud 是一系列的接口标准和配置规范,算是 Solon 的分布式开发套件方案。

本次整理的插件清单主要包括:

  • Solon Rpc Client 插件(代号:Nami)
  • Solon 插件
  • Solon SocketD 插件
  • Solon Cloud 插件

清单明细

1、Solon Rpc Cleint 插件(代号:Nami)

插件 说明
nami插件:: 说明
nami.coder.fastjson fastjson的编解码适配
nami.coder.hessian hessian的编解码适配
nami.coder.snack3 snack3的编解码适配
nami.coder.protostuff protostuff的编解码适配
nami.channel.http.okhttp okhttp的通道适配
nami.channel.http.hutool hutool http的通道适配
nami.channel.socketd socketd的通道适配(适配后,可使用org.noear:solon.sockted.client.* 做为客户端)

2、Solon 插件

插件 说明
boot插件:: 说明
org.noear:solon.boot.jlhttp* boot插件,对jlhttp适配,提供http服务(不自带session state)
org.noear:solon.boot.smarthttp boot插件,对smart-http适配,提供http服务(不自带session state)
org.noear:solon.boot.jetty* boot插件,对jetty适配,提供http服务(网友@khb提供)
org.noear:solon.extend.jetty.jsp 扩展插件,为jetty添加jsp支持(不建议使用jsp)(网友@khb提供)
org.noear:solon.extend.jetty.websocket 扩展插件,为jetty添加websocket支持(网友@khb提供)
org.noear:solon.boot.undertow* boot插件,对undertow适配,提供http服务(网友@tyk提供)
org.noear:solon.extend.undertow.jsp 扩展插件,为undertow添加jsp支持(不建议使用jsp)(网友@tyk提供)
org.noear:solon.boot.websocket boot插件,对java-websocket适配,提供websocket服务
静态文件支持插件:: 说明
org.noear:solon.extend.staticfiles 扩展插件,添加静态文件支持(监视 resources/static 文件夹)
切面支持插件:: 说明
org.noear:solon.extend.aspect 扩展插件,添加Dao、Service注解支持;进而支持事务和缓存注解
Yaml配置支持插件:: 说明
org.noear:solon.extend.properties.yaml 扩展插件,添加yml配置文件支持
数据辅助插件:: 说明
org.noear:solon.extend.data 扩展插件,添加事件(@Tran)、缓存(@Cache)支持
分布式开发规范定义插件:: 说明
org.noear:solon.cloud 扩展插件, 添加Solon Cloud 的接口定义及配置规范
验证支持插件:: 说明
org.noear:solon.extend.validation 扩展插件,添加验证注解(@Valid)支持
远程停止插件:: 说明
org.noear:solon.extend.stop 扩展插件,提供安全的远程停止支持
缓存插件:: 说明
org.noear:solon.cache.spymemcached 扩展插件,完成memcached的缓存服务适配
org.noear:solon.solon.cache.jedis 扩展插件,完成redis的缓存服务适配
jsr插件:: 说明
org.noear:solon.extend.jsr303 扩展插件,完成jsr303 bean 验证支持
org.noear:solon.extend.jsr330 扩展插件,完成jsr330 组件与注入支持
Web跨域插件:: 说明
org.noear:solon.extend.cors 扩展插件,完成Web跨域注解(@CrossOrigin)支持
Session插件:: 说明(可将boot插件的session state服务,自动换掉)
org.noear:solon.extend.sessionstate.jwt 扩展插件,分布式session(基于jwt构建)
org.noear:solon.extend.sessionstate.local 扩展插件,本地session
org.noear:solon.extend.sessionstate.redis 扩展插件,分布式session(其于redis构建)
日志插件:: 说明
org.noear:solon.logging 扩展插件,添加日志支持
org.noear:solon.logging.impl 扩展插件,添加Slf4j日志支持
序列化插件:: 说明
org.noear:solon.serialization.fastjson* 序列化插件,对 fastjson 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.snack3* 序列化插件,对 snack3 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.hession* 序列化插件,对 hession 适配,提供 hession 序列化输出
org.noear:solon.serialization.jackson 序列化插件,对 jackson 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.protostuff 序列化插件,对 protostuff 适配,提供protostuff视图输出 或 序列化输出
视图插件:: 说明(可置多个视图插件)
org.noear:solon.view.freemarker* 视图插件,对 freemarker 适配,提供html视图输出
org.noear:solon.view.jsp 视图插件,对 jsp 适配,提供html视图输出
org.noear:solon.view.velocity 视图插件,对 velocity 适配,提供html视图输出
org.noear:solon.view.thymeleaf 视图插件,对 thymeleaf 适配,提供html视图输出
org.noear:solon.view.beetl 视图插件,对 beetl 适配,提供html视图输出
org.noear:solon.view.enjoy 视图插件,对 enjoy 适配,提供html视图输出

3、Solon SocketD 插件

插件 说明
SocketD boot插件:: 说明
org.noear:solon.boot.socketd.jdksocket sockted boot插件,对jdksocket适配,提供socketd服务
org.noear:solon.boot.socketd.netty sockted boot插件,对netty适配,提供socketd服务
org.noear:solon.boot.socketd.rsocket sockted boot插件,对rsocket适配,提供socketd服务
org.noear:solon.boot.socketd.smartsocket sockted boot插件,对smart-socket适配,提供socketd服务
org.noear:solon.boot.socketd.websocket sockted boot插件,对websocket适配,提供socketd服务
SocketD client 插件:: 说明
org.noear:solon.sockted 扩展插件,sockted 协议的编解码、会话等基础支持
org.noear:solon.sockted.client.jdksocket 扩展插件,sockted 协议的 jdksocket 客户端适配
org.noear:solon.sockted.client.netty 扩展插件,sockted 协议的 netty 客户端适配
org.noear:solon.sockted.smartsocket 扩展插件,sockted 协议的 smartsocket 客户端适配
org.noear:solon.sockted.websocket 扩展插件,sockted 协议的 websocket 客户端适配

4、Solon Cloud 插件

插件 说明
org.noear:consul-solon-plugin consul 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:nacos-solon-plugin nacos 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:zookeeper-solon-plugin zookeeper 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:water-solon-plugin water 适配插件(支持Solon cloud 配置、注册与发现、事件、日志、跟踪、等服务)
org.noear:rabbitmq-solon-plugin rabbitmq 适配插件(支持Solon cloud 事件总线服务)
org.noear:rocketmq-solon-plugin rocketmq 适配插件(支持Solon cloud 事件总线服务)
org.noear:mqtt-solon-plugin mqtt 适配插件(支持Solon cloud 事件总线服务)
org.noear:kafka-solon-plugin kafka 适配插件(支持Solon cloud 事件总线服务)
org.noear:guava-solon-plugin guava 适配插件(支持Solon cloud 融断服务)
org.noear:sentinel-solon-plugin sentinel 适配插件(支持Solon cloud 融断服务)
org.noear:semaphore-solon-plugin semaphore 适配插件(支持Solon cloud 融断服务)
org.noear:aliyun-oss-solon-plugin aliyun-oss 适配插件(支持Solon cloud 分布式文件服务)
org.noear:aws-s3-solon-plugin aws-s3 适配插件(支持Solon cloud 分布式文件服务)
org.noear:snowflake-id-solon-plugin snowflake 算法适配插件(支持Solon cloud 分布式ID服务)

5、其它适配插件

插件 说明
org.noear:beetlsql-solon-plugin beetlsql 适配插件
org.noear:mybatis-solon-plugin mybatis 适配插件
org.noear:mybatis-sqlhelper-solon-plugin mybatis-sqlhelper 适配插件
org.noear:weed3-solon-plugin weed3 适配插件
org.noear:cron4j-solon-plugin cron4j 适配插件
org.noear:quartz-solon-plugin quartz 适配插件
org.noear:dubbo-solon-plugin dubbo 适配插件
org.noear:feign-solon-plugin feign 适配插件
org.noear:hasor-solon-plugin hasor 适配插件
org.noear:luffy-solon-plugin luffy 适配插件
org.noear:sureness-solon-plugin sureness 适配插件
org.noear:solon-springboot-starter springboot 适配插件

附:项目地址

附:入门示例

以上是关于Solon2 之 Groovy 语言开发后端接口项目的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver后端接口最好的语言

webservice 之 使用cxf开发WebService服务器端接口

Gradle 之语言基础 Groovy

Groovy使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 客户端开发 )

Groovy语言之SpringBoot整合JDBC案例

Android知识要点整理(15)----Gradle 之Groovy语言基础