SessionFactory是创建会话的工厂,根据相应的Subject上下文信息来创建会话;默认提供了SimpleSessionFactory用来创建SimpleSession会话。
public interface SessionFactory {
/**
* 创建一个新的session
*/
Session createSession(SessionContext initData);
}
看一个自定义的例子
public class MySessionFactory implements SessionFactory {
@Override
public Session createSession(SessionContext initData) {
SimpleSession session = new SimpleSession();
if (initData != null && initData instanceof WebSessionContext) {
WebSessionContext sessionContext = (WebSessionContext) initData;
HttpServletRequest request = (HttpServletRequest) sessionContext.getServletRequest();
if (request != null) {
session.setHost(IpUtils.getIpAddr(request));
...
}
}
return session;
}
}