三、进一步改进
并不是说一切都是完美的。比如,第一次执行 DaoBeanFactory.getDao方法时,会进行应用上下文的初始化,耗时较多;想改善数据源的管理;更进一步,如果大部分的工作都是进行查询,想提高系统的查询效率,该如何呢?
1、对ApplicationContex初始化的改进
DAO的获取工具类DaoBeanFactory首次被使用的时候会花上几秒钟执行ApplicationContex的初始化工作。如果用户在进行登录的时候,输入了用户名和密码之后要等上几秒钟后才被告知可以进入了 ,这样的系统给人的第一印象就是--怎么这么慢啊!为了尽量避免这种情况出现,既然是初始化而且还耗时,我们就应该尽量将这种初始化工作放到系统启动的时候去做。
实现的方法很多,我就简单写了一个初始化Servlet,在Servlet的init中调用一次DaoBeanFactory即可触发ApplicationContex的初始化:
并不是说一切都是完美的。比如,第一次执行 DaoBeanFactory.getDao方法时,会进行应用上下文的初始化,耗时较多;想改善数据源的管理;更进一步,如果大部分的工作都是进行查询,想提高系统的查询效率,该如何呢?
1、对ApplicationContex初始化的改进
DAO的获取工具类DaoBeanFactory首次被使用的时候会花上几秒钟执行ApplicationContex的初始化工作。如果用户在进行登录的时候,输入了用户名和密码之后要等上几秒钟后才被告知可以进入了 ,这样的系统给人的第一印象就是--怎么这么慢啊!为了尽量避免这种情况出现,既然是初始化而且还耗时,我们就应该尽量将这种初始化工作放到系统启动的时候去做。
实现的方法很多,我就简单写了一个初始化Servlet,在Servlet的init中调用一次DaoBeanFactory即可触发ApplicationContex的初始化:
public
class
AppInitServlet
extends
HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 2987034642754889458L;
public void init() {
log.info("应用系统启动开始…");
if (DaoBeanFactory.getDao("dataSource") != null) {
log.info("应用系统启动正常终了。");
} else {
log.info("应用系统启动异常终了。");
}
}
/**
*
*/
private static final long serialVersionUID = 2987034642754889458L;
public void init() {
log.info("应用系统启动开始…");
if (DaoBeanFactory.getDao("dataSource") != null) {
log.info("应用系统启动正常终了。");
} else {
log.info("应用系统启动异常终了。");
}
}