Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布

栏目: 软件资讯 · 发布时间: 3年前

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

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

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

快速了解Solon的材料:

《Solon 特性简集,相较于 Springboot 有什么区别?》

《Solon Cloud 分布式服务开发套件清单,感觉受与 Spring Cloud 的不同》

《Solon 的想法与架构笔记》

《Solon 框架入门》

所谓更小:

内核0.1m,最小的接口开发单位0.2m(相较于 Dubbo、Springboot 的依赖包,小到可以乎略不计)

所谓更快:

本机http helloworld测试,Qps可达12万之多。可参考:《helloworld_wrk_test

所谓更自由:(代码操控自由)

// 除了注解模式之外,还可以按需手动
//
//手动获取配置(Props 为 Properties 增强版)
Props db = Solon.cfg().getProp("db");

//手动获取容器里的Bean
UserService userService = Aop.get(UserService.class);

//手动监听http post请求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));

//手动添加个RPC服务
Solon.global().add("/rpc/", HelloService.class, true);

//手动获取一个RPC服务消费端
HelloService helloService = Nami.builder().create(HelloService.class);

//手动为容器添加组件
Aop.wrapAndPut(DemoService.class);

本次版本主要变化:

1、增加 solon.extend.jsr303 组件,支持 jsr303 bean验证能力

Solon 原有的验证体系是基于 Context 的,基于方法或参数的验证。现在算是补齐了 Bean 或 Model 的验证能力。

@Valid
@Controller
public class ValidController {
    //这是基于 context 的验证体系(可以批量验证参数)
    @NotZero({"val1", "val2"})
    @Mapping("nzero")
    public String nzero(int val1, int val2) {
        return "OK";
    }

    //这也是基于 context 的验证体系
    @Mapping("size")
    public String size(@Length(min = 2, max = 5, message = "测试") String val1,
                       @Length(min = 2, max = 5, message = "测试") String val2) {
        return "OK";
    }

    //这是基于 bean 的验证体系(@Validated,这个注解加上代表要验证这个模型参数)
    @Mapping("bean")
    public String bean(@Validated ValidModel model) {
        return "OK";
    }
}

//申明可验证的模型
@Data
public class ValidModel {
    @NotBlank(message = "手机号不能为空")
    private String mobile;

    @NotBlank(message = "密码不能为空")
    private String password;
}

2、增加 solon.cache.spymemcached 分布式缓存组件,提供 solon cache 的实现支持

配置:(Solon 的缓存注解,默认是不需要配置缓存服务的。默认会提供本地缓存服务)

solon.app:
  name: demoapp
  group: demo
  
cache1:
  server: memcached.water.io:11211  #具体需要哪些配置,可以看下 MemCacheService 的类实现
  user: memcached

代码:

//组件配置
@Configuration
public class Config {
    @Bean
    public CacheService cache(@Inject("${cache1}") MemCacheService cache){
        return cache;
    }
}

//使用
@Controller
public class CacheController {
    /**
     * 执行结果缓存10秒,并添加 test_${label} 和 test1 标签
     * */
    @Cache(tags = "test_${label},test1" , seconds = 60)
    @Mapping("/cache/")
    public Date test(int label) {
        return new Date();
    }

    /**
     * 执行后,清除 标签为 test  的缓存(不过,目前没有 test 的示签...)
     * */
    @CachePut(tags = "test1")
    @Mapping("/cache/update")
    public Date update() {
        return new Date();
    }

    /**
     * 执行后,清除 标签为 test_${label}  的缓存
     * */
    @CacheRemove(tags = "test_${label}")
    @Mapping("/cache/remove")
    public String remove(int label) {
        return "清除成功-" + new Date();
    }
}

3、增加 solon.cache.jedis 分布式缓存组件

使用同上

4、优化 solon.logging 内部结构,扩展更自由

例,配置一个新的日志添加器,指定类名,指定级别:

solon.logging.appender:
  test:
    class: demo.TestAppender
    level: TRACE

定义日志添加器:

public class TestAppender extends AppenderBase {
    @Override
    public void append(LogEvent logEvent) {
        System.out.println("[Test] " + logEvent.getContent());
    }
}

附:生态组件清单

Nami 插件(Solon rpc client) 说明
nami插件:: 说明
nami.coder.fastjson fastjson的编解码适配
nami.coder.hessian hessian的编解码适配
nami.coder.snack3 snack3的编解码适配
nami.channel.http.okhttp okhttp的通道适配
nami.channel.socketd socketd的通道适配(适配后,可使用org.noear:solon.sockted.client.* 做为客户端)
Solon 插件 说明
boot插件:: 说明
org.noear:solon.boot.jlhttp* boot插件,对jlhttp适配,提供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.boot.undertow* boot插件,对undertow适配,提供http服务(网友@tyk提供)
org.noear:solon.boot.websocket boot插件,对java-websocket适配,提供websocket服务
org.noear:solon.extend.undertow.jsp 扩展插件,为undertow添加jsp支持(不建议使用jsp)(网友@tyk提供)
   
静态文件支持插件:: 说明
org.noear:solon.extend.staticfiles 扩展插件,添加静态文件支持(监视 resources/static 文件夹)
   
切面支持插件:: 说明
org.noear:solon.extend.aspect 扩展插件,添加Dao、Service注解支持;进而支持事务和缓存注解
   
数据操作支持插件:: 说明
org.noear:solon.extend.data 扩展插件,实现事务和缓存的注解支持
   
验证支持插件:: 说明
org.noear:solon.extend.validation 扩展插件,实现验证的注解支持
   
Yaml配置支持插件:: 说明
org.noear:solon.extend.properties.yaml 扩展插件,添加yml配置文件支持
   
Data插件:: 说明
org.noear:solon.extend.data 扩展插件,添加事件(@Tran)、缓存(@Cache)支持
   
Cloud插件:: 说明
org.noear:solon.cloud 扩展插件, 添加Solon Cloud 的接口定义及配置规范
   
Validation插件:: 说明
org.noear:solon.extend.validation 扩展插件,添加验证(@Valid)支持
   
Cache插件:: 说明
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 组件与注入支持
   
跨域插件:: 说明
org.noear:solon.extend.cors 扩展插件,完成web跨域注解支持
   
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视图输出
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 客户端适配
其它扩展插件 说明
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 适配插件
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服务)

附:入门示例


以上所述就是小编给大家介绍的《Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Cult of the Amateur

The Cult of the Amateur

Andrew Keen / Crown Business / 2007-6-5 / USD 22.95

Amateur hour has arrived, and the audience is running the show In a hard-hitting and provocative polemic, Silicon Valley insider and pundit Andrew Keen exposes the grave consequences of today’s......一起来看看 《The Cult of the Amateur》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试