From 7664edb9a192bbe2a21f3221a3c9f0c69b32b755 Mon Sep 17 00:00:00 2001 From: redkale Date: Sat, 23 Dec 2023 22:18:17 +0800 Subject: [PATCH] doc --- README.md | 23 +++++++++++++-------- docs/locked.md | 1 + docs/native-image.md | 1 + docs/service.md | 8 +++++++ docs/{source-sql.md => source-sqlparser.md} | 0 docs/websocket.md | 1 + 6 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 docs/locked.md create mode 100644 docs/native-image.md create mode 100644 docs/service.md rename docs/{source-sql.md => source-sqlparser.md} (100%) create mode 100644 docs/websocket.md diff --git a/README.md b/README.md index c74dd5dcb..40f8fb12d 100644 --- a/README.md +++ b/README.md @@ -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) -       详情请访问:    https://redkale.org       基本文档:    https://redkale.org/articles.html diff --git a/docs/locked.md b/docs/locked.md new file mode 100644 index 000000000..f1c8470a4 --- /dev/null +++ b/docs/locked.md @@ -0,0 +1 @@ +文档完善中…… \ No newline at end of file diff --git a/docs/native-image.md b/docs/native-image.md new file mode 100644 index 000000000..f1c8470a4 --- /dev/null +++ b/docs/native-image.md @@ -0,0 +1 @@ +文档完善中…… \ No newline at end of file diff --git a/docs/service.md b/docs/service.md new file mode 100644 index 000000000..46636aeda --- /dev/null +++ b/docs/service.md @@ -0,0 +1,8 @@ +# Service组件 +    Service是Redkale最核心的组件,主要处理业务逻辑和操作数据层。Service实例分两种模式: 本地模式远程模式。其模式由```conf/application.xml```文件来配置。开发人员在调用过程中通常不需要区分Service实例是哪种模式。
+    并不是Sevice都能进行本地和远程模式切换, 以下情况的Service不能转成远程模式: +    * Service类修饰为```final``` +    * Service类被标记```@Local``` +    * Service类被标记```@Component``` + +    Redkale进程启动时扫描可加载的Service实现类,根据配置文件配置的模式采用```ASM```技术动态生成相应的Service临时类进行实例化,并注册到ResourceFactory同其他Service、Servlet依赖注入。 \ No newline at end of file diff --git a/docs/source-sql.md b/docs/source-sqlparser.md similarity index 100% rename from docs/source-sql.md rename to docs/source-sqlparser.md diff --git a/docs/websocket.md b/docs/websocket.md new file mode 100644 index 000000000..f1c8470a4 --- /dev/null +++ b/docs/websocket.md @@ -0,0 +1 @@ +文档完善中…… \ No newline at end of file