diff --git a/redkale.html b/redkale.html
index ab9a353c3..21b2b8bcb 100644
--- a/redkale.html
+++ b/redkale.html
@@ -521,6 +521,19 @@
${APP_HOME} 指当前程序的根目录APP_HOME
没注明唯一的节点可多个存在
required: 被声明required的属性值不能为空
+
+ group
+ / / \ \
+ / / \ \
+ / / \ \
+ node1 node2 node3 node4
+ / \
+ / \
+ / \
+ / \
+ serviceid1 serviceid2
+ / \ / \
+ serviceid1_name1 serviceid1_name2 serviceid2_name1 serviceid2_name2
-->
<!--
address: 本地局域网的IP地址, 默认值为默认网卡的ip,当不使用默认值需要指定值,如192.168.1.22
@@ -541,6 +554,7 @@
threads: 线程总数, 默认: <group>节点数*CPU核数*8
bufferCapacity: ByteBuffer的初始化大小, 默认: 8K;
bufferPoolSize: ByteBuffer池的大小,默认: <group>节点数*CPU核数*8
+ strategy: 远程请求的负载均衡策略, 必须是org.redkale.net.TransportStrategy的实现类
-->
<transport bufferCapacity="8K" bufferPoolSize="32" threads="32"/>
@@ -567,14 +581,20 @@
<!--
全局的数据源设置, 可以是CacheSource、DataSource, JDBC的DataSource通常通过persistence.xml配置,此处多用于CacheSource的配置
name: 资源名,用于依赖注入。
- value:类名,必须是CacheSource或DataSource的子类,且必须实现Service接口。
+ value:类名,必须是CacheSource或DataSource的子类,且必须实现Service接口。如果是DataSource.class,系统自动映射成DataJdbcSource.class
groups: 指定groups。
xxx: 其他属性与子节点通过Service.init方法传入的AnyValue获取。
-->
<source name="redis" value="org.redkalex.cache.RedisCacheSource" xxx="16">
<node addr="127.0.0.1" port="7070"/>
</source>
-
+
+ <!--
+ Application启动的监听事件,可配置多个节点
+ value: 类名,必须是ApplicationListener的子类
+ -->
+ <listener value="org.redkalex.xxx.XXXApplicationListener"/>
+
<!--
【节点全局唯一】
全局的参数配置, 可以通过@Resource(name="property.xxxxxx") 进行注入<property>的信息, 被注解的字段类型只能是String、primitive class
@@ -589,7 +609,8 @@
System.setProperty("convert.json.writer.buffer.defsize", "4096");
System.setProperty("convert.bson.writer.buffer.defsize", "4096");
- <properties>节点下也可包含非<property>节点,其节点可以通过@Resource(name="properties.xxxxxx")进行注入, 被注解的字段类型只能是AnyValue、AnyValue[]
+ <properties>节点下也可包含非<property>节点.
+ 非<property>其节点可以通过@Resource(name="properties.xxxxxx")进行注入, 被注解的字段类型只能是AnyValue、AnyValue[]
-->
<properties load="config.properties">
<property name="system.property.yyyy" value="YYYYYY"/>
@@ -600,16 +621,17 @@
</resources>
<!--
- protocol: required server所启动的协议,Redkale内置的有HTTP、SNCP、WATCH,SNCP使用TCP实现;
+ protocol: required server所启动的协议,Redkale内置的有HTTP、SNCP、WATCH。协议均使用TCP实现; WATCH服务只能存在一个。
name: 服务的名称,用于监控识别,一个配置文件中的server.name不能重复,命名规则: 字母、数字、下划线
host: 服务所占address , 默认: 0.0.0.0
port: required 服务所占端口
root: 如果是web类型服务,则包含页面 默认:{APP_HOME}/root
- lib: server额外的class目录, 默认为空
+ lib: server额外的class目录, 默认为${APP_HOME}/libs/*;
excludelibs: 排除lib.path与excludes中的正则表达式匹配的路径, 多个正则表达式用分号;隔开
charset: 文本编码, 默认: UTF-8
backlog: 默认10K
threads: 线程总数, 默认: CPU核数*16
+ maxconns:最大连接数, 小于1表示无限制, 默认: 0
maxbody: request.body最大值, 默认: 64K
bufferCapacity: ByteBuffer的初始化大小, 默认: 8K; 如果是HTTP协议则默认: 16K + 16B (兼容HTTP 2.0、WebSocket)
bufferPoolSize: ByteBuffer池的大小,默认: CPU核数*512
@@ -623,8 +645,7 @@
<!--
加载所有的Service服务;
在同一个进程中同一个name同一类型的Service将共用同一个实例
- autoload="true" 默认值. 自动加载以下目录(如果存在的话)下所有的Service类:
- server.lib; server.lib/*; server.classes;
+ autoload="true" 默认值. 自动加载classpath下所有的Service类
autoload="false" 需要显著的指定Service类
includes: 当autoload="true", 拉取类名与includes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
excludes: 当autoload="true", 排除类名与excludes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
@@ -639,11 +660,12 @@
<!--
name: 显式指定name,覆盖默认的空字符串值。 注意: name不能包含$符号。
groups: 显式指定groups,覆盖<services>节点的groups默认值。
+ ignore: 是否禁用, 默认为false。
-->
<service value="com.xxx.XXX2Service" name="" groups="xxx;yyy"/>
<!-- 给Service增加配置属性 -->
<service value="com.xxx.XXX1Service">
- <!-- property节点值在 public void init(AnyValue conf) 方法中可以通过 AnyValue properties = conf.getAnyValue("properties");获取 -->
+ <!-- property值在public void init(AnyValue conf)方法中可以通过AnyValue properties=conf.getAnyValue("properties")获取 -->
<property name="xxxxxx" value="XXXXXXXX"/>
<property name="xxxxxx" value="XXXXXXXX"/>
</service>
@@ -657,13 +679,18 @@
excludes: 当autoload="true", 排除类名与excludes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
-->
<filters autoload="true" includes="" excludes="">
-
+
+ <!--
+ 显著加载指定的Filter类
+ value=: Filter类名。必须与Server的协议层相同,HTTP必须是HttpFilter
+ ignore: 是否禁用, 默认为false。
+ -->
<!-- 显著加载指定的Filter类 -->
<filter value="com.xxx.XXX1Filter"/>
<!-- 给Filter增加配置属性 -->
<filter value="com.xxx.XXX12Filter">
- <!-- property节点值在 public void init(AnyValue conf) 方法中可以通过 AnyValue properties = conf.getAnyValue("properties");获取 -->
+ <!-- property值在public void init(AnyValue conf)方法中可以通过AnyValue properties=conf.getAnyValue("properties")获取 -->
<property name="xxxxxx" value="XXXXXXXX"/>
<property name="xxxxxx" value="XXXXXXXX"/>
</filter>
@@ -709,11 +736,14 @@
如果addheader、setheader 的value值以request.parameters.开头则表示从request.parameters中获取对应的parameter值
如果addheader、setheader 的value值以request.headers.开头则表示从request.headers中获取对应的header值
例如下面例子是在Response输出header时添加两个header(一个addHeader, 一个setHeader)。
+ options 节点: 设置了该节点却auto=true,当request的method=OPTIONS自动设置addheader、setheader并返回200状态码
-->
<response>
- <defcookie domain="" path=""/>
+ <defcookie domain="" path=""/>
<addheader name="Access-Control-Allow-Origin" value="request.headers.Origin" />
- <setheader name="Access-Control-Allow-Credentials" value="true"/>
+ <setheader name="Access-Control-Allow-Headers" value="request.headers.Access-Control-Request-Headers"/>
+ <setheader name="Access-Control-Allow-Credentials" value="true"/>
+ <options auto="true" />
</response>
<!--
@@ -744,14 +774,17 @@
<!--
加载所有的Servlet服务;
path: servlet的ContextPath前缀 默认为空
- autoload="true" 默认值. 自动加载以下目录(如果存在的话)下所有的Servlet类:
- ${APP_HOME}/lib; ${APP_HOME}/root/lib/*; ${APP_HOME}/root/classes;
+ autoload="true" 默认值. 自动加载classpath下所有的Servlet类
autoload="false" 需要显著的指定Service类
includes: 当autoload="true", 拉取类名与includes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
excludes: 当autoload="true", 排除类名与excludes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
-->
<servlets path="/pipes" autoload="true" includes="" excludes="">
- <!-- 显著加载指定的Servlet -->
+ <!--
+ 显著加载指定的Servlet类
+ value=: Servlet类名。必须与Server的协议层相同,HTTP必须是HttpServlet
+ ignore: 是否禁用, 默认为false。
+ -->
<servlet value="com.xxx.XXX1Servlet" />
<servlet value="com.xxx.XXX2Servlet" />
<servlet value="com.xxx.XXX3Servlet" >
@@ -766,7 +799,7 @@
<services autoload="true" includes="" excludes="" />
</server>
</application>
-
+