Solon2 之基础:一、常用应用配置说明

时间:2023-02-23 22:05:58

约定参考:

//资源路径约定(不用配置;也不能配置)
resources/app.yml( 或 app.properties ) #为应用配置文件

resources/WEB-INF/static/ #为静态文件根目标
resources/WEB-INF/view/   #为视图模板文件根目标(支持多视图共存)

1、服务端基本属性

#服务端口(默认为8080)
server.port: 8080
#服务主机(ip)
server.host: "0.0.0.0"
#服务包装端口(默认为 ${server.port})//v1.12.1 后支持  //一般用docker + 服务注册时才可能用到
server.wrapPort: 8080
#服务包装主机(ip)//v1.12.1 后支持
server.wrapHost: "0.0.0.0"
#服务上下文路径
server.contextPath: "/test-service/" #v1.11.2 后支持

#服务 http 信号名称,服务注册时可以为信号指定名称(默认为 ${solon.app.name})
server.http.name: "waterapi"
#服务 http 信号端口(默认为 ${server.port})
server.http.port: 8080
#服务 http 信号主机(ip)
server.http.host: "0.0.0.0"
#服务 http 信号包装端口 //v1.12.1 后支持  //一般用docker + 服务注册时才可能用到
server.http.wrapPort: 8080
#服务 http 信号包装主机(ip)//v1.12.1 后支持
server.http.wrapHost: "0.0.0.0"
#服务 http 最小线程数(默认:0表示自动,支持固定值 16 或 倍数 x16)//v1.10.13 后支持
server.http.coreThreads: 0 
#服务 http 最大线程数(默认:0表示自动,支持固定值 16 或 倍数 x16) //v1.10.13 后支持
server.http.maxThreads: 0
#服务 http 闲置线程超时(0表示自动,单位毫秒) //v1.10.13 后支持
server.http.idleTimeout: 0
#服务 http 是否为IO密集型? //v1.12.2 后支持
server.http.ioBound: true

#服务 socket 信号名称,服务注册时可以为信号指定名称(默认为 ${solon.app.name})
server.socket.name: "waterapi.tcp"
#服务 socket 信号端口(默认为 20000+${server.port})
server.socket.port: 28080
#服务 socket 信号主机(ip)
server.socket.host: "0.0.0.0"
#服务 socket 信号包装端口 //v1.12.1 后支持  //一般用docker + 服务注册时才可能用到
server.socket.wrapPort: 28080
#服务 socket 信号包装主机(ip)//v1.12.1 后支持
server.socket.wrapHost: "0.0.0.0"
#服务 socket 最小线程数(默认:0表示自动,支持固定值 16 或 倍数 x16)) //v1.10.13 后支持
server.socket.coreThreads: 0 
#服务 socket 最大线程数(默认:0表示自动,支持固定值 16 或 倍数 x16)) //v1.10.13 后支持
server.socket.maxThreads: 0
#服务 socket 闲置线程超时(0表示自动,单位毫秒)) //v1.10.13 后支持
server.socket.idleTimeout: 0
#服务 socket 是否为IO密集型? //v1.12.2 后支持
server.socket.ioBound: true


#服务 websocket 信号名称,服务注册时可以为信号指定名称(默认为 ${solon.app.name})
server.websocket.name: "waterapi.ws"
#服务 websocket 信号端口(默认为 10000+${server.port})
server.websocket.port: 18080
#服务 websocket 信号主机(ip)
server.websocket.host: "0.0.0.0"
#服务 websocket 信号包装端口 //v1.12.1 后支持  //一般用docker + 服务注册时才可能用到
server.websocket.wrapPort: 18080
#服务 websocket 信号包装主机(ip)//v1.12.1 后支持
server.websocket.wrapHost: "0.0.0.0"
#服务 websocket 最小线程数(默认:0表示自动,支持固定值 16 或 倍数 x16)) //v1.10.13 后支持
server.websocket.coreThreads: 0 
#服务 websocket 最大线程数(默认:0表示自动,支持固定值 16 或 倍数 x16)) //v1.10.13 后支持
server.websocket.maxThreads: 0
#服务 websocket 闲置线程超时(0表示自动,单位毫秒)) //v1.10.13 后支持
server.websocket.idleTimeout: 0
#服务 websocket 是否为IO密集型? //v1.12.2 后支持
server.websocket.ioBound: true

关于包装主机与包装端口的说明:

  • 比如,服务在docker里运行,就相当于被docker包装了一层。
  • 此时,要向外部注册服务,就可能需要使用包装主机与包装端口。

2、请求会话相关

#设定最大的请求包大小(或表单项的值大小)
server.request.maxBodySize: 2mb #kb,mb
#设定最大的上传文件大小
server.request.maxFileSize: 20mb #kb,mb (默认使用 maxBodySize 配置值)
#设定最大的请求头大小
server.request.maxHeaderSize: 200kb #kb,mb
#设定请求体编码
server.request.encoding: "utf-8"

#设定响应体编码
server.response.encoding: "utf-8"

#设定会话超时秒数(单位:秒)
server.session.timeout: 7200 
#设定会话id的cookieName
server.session.cookieName: "SOLONID"
#设定会话状态的cookie域(默认为当前域名)
server.session.state.domain: noear.org

3、服务端SSL证书配置属性(https)

#设定SSL证书(支持:solon.boot.jdkhttp 或 solon.boot.jlhttp 或 solon.boot.smarthttp 或 solon.boot.jetty 或 solon.boot.undertow)
server.ssl.keyStore: "demo.jks" #或 "demo.pfx"
server.ssl.keyPassword: "demo"

注意:添加 ssl 证书后,应用的 "server.port" 端口只能用 https 来访问。

4、应用基本属性

#应用名称
solon.app.name: "waterapi"
#应用组
solon.app.group: "water"
#应用命名空间(一般用不到,只有支持的组件才用)
solon.app.namespace: "demo"
#应用标题
solon.app.title: "WATER"

#应用体外扩展目录
solon.extend: "ext"

#应用体外扩展配置(用于指定外部配置。策略:先加载内部的,再加载外部的盖上去)
solon.config: "./app.yml"

#应用元信息输出开启(输出每个插件的信息)
solon.output.meta: 1

5、应用环境配置切换

#应用环境配置(主要用于切换包内不同的配置文件)
solon.env: dev

#例:
# app.yml      #应用主配置(必然会加载)
# app-dev.yml  #应用dev环境配置
# app-pro.yml  #应用pro环境配置
#
#启动时:java -Dsolon.env=pro -jar demo.jar 或者 java -jar demo.jar --env=pro

6、调试模式控制

solon.debug:
  enableCaching: false
  enableTransaction: true

7、视图后缀与模板引擎的映射配置

#默认约定的配置(不需要配置,除非要修改)
solon.view.mapping.htm: BeetlRender #简写
solon.view.mapping.shtm: EnjoyRender
solon.view.mapping.ftl: FreemarkerRender
solon.view.mapping.jsp: JspRender
solon.view.mapping.html: ThymeleafRender

#添加自义定映射时,需要写全类名
solon.view.mapping.vm: org.noear.solon.view.velocity.VelocityRender #全名(一般用简写)

8、安全停止配置

solon.stop.safe: 0   #安全停止(0或1)//(v2.1.0 后支持;之前只能用接口启用)
solon.stop.delay: 10   #安全停止的延时秒数(默认10秒)