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> - +