This commit is contained in:
redkale
2023-12-23 22:18:17 +08:00
parent 5a156467d7
commit 7664edb9a1
6 changed files with 25 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
![Redkale logo](docs/images/logo.png)        Redkale高性能框架
![Redkale logo](docs/images/logo.png)
## 简介
    Redkale (中文名: 红菜苔,一种湖北特产蔬菜) 是基于Java 11全新的微服务框架 包含HTTP、WebSocket、TCP/UDP、数据序列化、数据缓存、依赖注入等功能。 本框架致力于简化集中式和微服务架构的开发,在增强开发敏捷性的同时保持高性能。
@@ -11,18 +11,23 @@
* 提供类似JPA功能包含数据缓存自动同步、分表分库与简洁的数据层操作接口
* 可以动态修改已依赖注入的资源
## 开发文档
* [快速入门](docs/quick-start.md)
* [Service组件](docs/service.md)
* [数据源组件](docs/source.md)
* [对象序列化](docs/convert.md)
* [Json序列化](docs/convert-json.md)
* [WebSocket](docs/websocket.md)
* [native-image](docs/native-image.md)
* [方法缓存```Cached```](docs/cached.md)
* [方法锁```Locked```](docs/locked.md)
* [基本配置](docs/config.md)
* [FAQ](docs/faq.md)
## 设计理念
    作为一个全新的微服务框架Redkale在接口定义上使用了Java 8以上版本的大量新特性接口有默认实现、接口带静态方法、重复注解等特性同时在设计上与主流框架有很大不同。Redkale是按组件形式设计的而非以容器为主几乎每个子包都是能提供独立功能的组件。如Tomcat是按容器设计的所有web资源/配置由Tomcat控制开发者很能难控制到Tomcat内部而Redkale的HTTP服务只是个组件开发者既可以自己启动和配置HttpServer也可以把Redkale当成容器通过Redkale进程来初始化服务。Spring的Ioc容器也是如此Redkale提供的依赖注入仅通过ResouceFactory一个类来控制非常轻量并且可动态更改已注入的资源。Spring提倡控制反转思想而自身的容器却让开发者很难控制。Redkale是一个既能以组件形式也能以容器形式存在的框架。从整体上看Redkale的架构分两层接口和默认实现。开发者若想替换掉Redkale内置的HTTP服务而使用符合JavaEE规范的HttpServlet, 可以采用自定义协议基于JSR 340(Servlet 3.1)来实现自己的HTTP服务若想使用Hibernate作为数据库操作可以写一个自己的DataSource实现类JSON的序列化和反序列化也可以使用第三方的实现Memcached或Redis也可以作为另一个CacheSource的实现替换Redkale的默认实现。这其实包含了控制反转的思想让框架里的各个组件均可让开发者控制。
    与主流框架比功能上Redkale显得很简单这体现了Redkale的简易性而并非是不足从一个良好的设计习惯或架构上来看有些常用功能是不需要提供的如Redkale的HTTP服务不支持JSP, JSP其实算是一个落后的技术现在是一个多样化终端的时代终端不只局限于桌面程序和PC浏览器还有原生App、混合式App、微信端、移动H5、提供第三方接口等各种形式的终端这些都不是JSP能方便兼顾的而HTTP+JSON作为通用性接口可以避免重复开发模版引擎的功能加上各种强大的JS框架足以取代JSP。Redkale在功能上做了筛选不会为了迎合主流而提供而是以良好的设计思想为指导。这是Redkale的主导思维。
## 文档目录
* [快速入门](docs/quick-start.md)
* [对象序列化](docs/convert.md)
* [Json序列化](docs/convert-json.md)
* [基本配置](docs/config.md)
* [方法缓存```Cached```](docs/cached.md)
* [FAQ](docs/faq.md)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>详情请访问:&nbsp;&nbsp;&nbsp;&nbsp;<a href='https://redkale.org' target='_blank'>https://redkale.org</a></b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>基本文档:&nbsp;&nbsp;&nbsp;&nbsp;<a href='https://redkale.org/articles.html' target='_blank'>https://redkale.org/articles.html</a></b>

1
docs/locked.md Normal file
View File

@@ -0,0 +1 @@
文档完善中……

1
docs/native-image.md Normal file
View File

@@ -0,0 +1 @@
文档完善中……

8
docs/service.md Normal file
View File

@@ -0,0 +1,8 @@
# Service组件
&nbsp;&nbsp;&nbsp;&nbsp;Service是Redkale最核心的组件主要处理业务逻辑和操作数据层。Service实例分两种模式: <b>本地模式</b><b>远程模式</b>。其模式由```conf/application.xml```文件来配置。开发人员在调用过程中通常不需要区分Service实例是哪种模式。 <br/>
&nbsp;&nbsp;&nbsp;&nbsp;并不是Sevice都能进行本地和远程模式切换 以下情况的Service不能转成远程模式:
&nbsp;&nbsp;&nbsp;&nbsp;* Service类修饰为```final```
&nbsp;&nbsp;&nbsp;&nbsp;* Service类被标记```@Local```
&nbsp;&nbsp;&nbsp;&nbsp;* Service类被标记```@Component```
&nbsp;&nbsp;&nbsp;&nbsp;Redkale进程启动时扫描可加载的Service实现类根据配置文件配置的模式采用```ASM```技术动态生成相应的Service临时类进行实例化并注册到ResourceFactory同其他Service、Servlet依赖注入。

1
docs/websocket.md Normal file
View File

@@ -0,0 +1 @@
文档完善中……