内容简介: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 的不同》
所谓更小:
内核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服务) |
附:入门示例
- Solon 入门教程示例:https://gitee.com/noear/solon_demo
- Solon Rpc 入门教程示例:https://gitee.com/noear/solon_rpc_demo
- Solon Cloud 入门教程示例:https://gitee.com/noear/solon_cloud_demo
- Solon 进阶教程示例:https://gitee.com/noear/solon_advance_demo
以上所述就是小编给大家介绍的《Spring Boot & Cloud 轻量替代框架 Solon 1.3.37 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- looter——超轻量级爬虫框架
- 工具 | 一个轻量级业务中台开发框架
- 轻量级API测试框架Pandaria
- bilibili 轻量级业务框架正式开源
- 轻量级 Web 框架 Gin 结构分析
- Golang轻量级-高并发socket框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Chinese Authoritarianism in the Information Age
Routledge / 2018-2-13 / GBP 115.00
This book examines information and public opinion control by the authoritarian state in response to popular access to information and upgraded political communication channels among the citizens in co......一起来看看 《Chinese Authoritarianism in the Information Age》 这本书的介绍吧!