SolonApp 的实例与接口
SolonApp 是框架的核心对象,也是应用生命周期的主体。一般通过 Solon.start(...) 产生,通过 Solon.app() 获取:
@SolonMain
public class DemoApp{
public static void main(String[] args){
//可以在 start() 返回得到它
SolonApp app = Solon.start(DemoApp.class, args, app->{
//或者,可以通初始化函数获得它
});
}
}
//最重要的是:start() 后,通过全局实例得到它(为手动开发提供便利):
Solon.app();
启动并阻塞(一般用不到):
@SolonMain
public class DemoApp{
public static void main(String[] args){
Solon.start(DemoApp.class, args).block();
}
}
提醒:原则上 Solon.start(..) 在一个程序里,只能执行一次。
1、了解路由接口(为手动控制提供支持)
Solon 的路由,可以为 http, websocket, socket 通讯服务。也可以用于非通讯场景。
成员 | 说明 | 备注 |
---|---|---|
filter(?) | 添加过滤器 | |
routerInterceptor(?) | 添加路由拦截器 | v1.12.2 后支持 |
before(?) | 添加前置处理 | |
get(?) | 添加 get 主处理 | |
post(?) | 添加 post 主处理 | |
put(?) | 添加 put 主处理 | |
patch(?) | 添加 patch 主处理 | |
... | 添加 ... 主处理 | 主处理有很多 |
after(?) | 添加后置处理 |
提示:可以通过 《请求处理过程示意图》,了解各接口的作用位置。
2、几个重要的成员
成员 | 说明 | 备注 |
---|---|---|
通过 Solon.app() 可获取当前实例 | ||
context()->AppContext | 应用上下文(Bean 容器) | 通过 Solon.context() 可快捷获取 |
cfg()->SolonProps | 应用属性或配置 | 通过 Solon.cfg() 可快捷获取 |
classLoader() | 应用类加载器 | |
source() | 应用启动源(或入口主类) | |
shared() | 应用共享变量 | 会同步到一些插件(比如视图模板) |
sharedAdd(k,v) | 应用共享变量添加 | |
sharedGet(k,callback) | 应用共享变量获取 | 支持订阅模式 |
router() | 应用路由器 | 一般不直接使用 |
chainManager() | 应用链路管理器 | 一般不直接使用 |
converterManager() | 应用转换管理器 | 一般不直接使用 |
factoryManager() | 应用工厂管理器 | 一般不直接使用 |
3、几个重要的开关
成员 | 说明 | 默值值 |
---|---|---|
enableHttp(?) | 启用http通讯 | true |
enableWebSocket(?) | 启用web socket通讯 | false |
enableSocketD(?) | 启用socket通讯的D协议 | false |
enableTransaction(?) | 启用事务能力 | true |
enableCaching(?) | 启用缓存能力 | true |
enableStaticfiles(?) | 启用静态文件能力 | true |
enableSessionState(?) | 启用会话状态能力 | true |
例如:
@SolonMain
public class DemoApp{
public static void main(String[] args){
Solon.start(DemoApp.class, args, app->{
app.enableSessionState(false);
});
}
}