Session即HttpSession对象,是维护客户端/服务器端的身份识别机制之一
默认情况下,单机使用,并不需要特别的Session机制
但,如果是集群,或者你想用Redis/Memcached等存放Session,那么就需要自定义Session了
*容器本身提供的(tomcat/jetty/jboss/weblogic等都自带跨JVM的Session,功能强大但存放的对象必须实现Serializable*自行实现的,针对性高,可控性强
如果是容器提供的Session机制,那么大部分情况下都是对应用透明的,所以nutz也没什么可以做的
对于控制欲很强,业务不是非常复杂的,自定义Session肯定是首选啦
@SessionBy -- 定义在主模块(全局的,难道你还想每个子模块一种?!),就是为了说明下一个接口的对象如何生成SessionProvider -- 过滤器式的Session提供者
示例: 完全禁用Session
@SessionBy(NopSessionProvider.class)
public class MainModule {} //其他的果断不理啦
public class NopSessionProvider extend AbstractSessionProvider {
public HttpSession createSession(HttpServletRequest req,
HttpServletResponse resp,
ServletContext servletContext) {
//总是不创建session
return false;
}
}
PS: nutzmore项目有ShiroSessionProvider