tomcat启动时执行sql语句加载数据库的数据到index.xml(欢迎界面)(前置条件:ssm框架)

1、applicationContext
applicationContext是伴随着服务的启动而产生的,当服务器关闭时applicationContext也随着消失,
application空间是所有用户共享的一个空间,所以在主页需要用到的数据对于所有用户来说都是一样的,因此在tomcat执行的时候就可以将查到的数据保存在application当中。

2、web.xml的listener
web.xml的加载顺序是先加载, 所以需要配置监听器,对于本例中需要写一个监听器类并实现ServletContextListener。代码如下:
tomcat启动时执行sql语句加载数据库的数据到index.xml(欢迎界面)(前置条件:ssm框架)_第1张图片
源码:

@Component          //这里需要把该类加载为spring容器的管理
public class allBookSelect  implements ServletContextListener{

	@Autowired
	@Qualifier("userMapper")
	UserMapper userMapper;
	private ApplicationContext context;     

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
		userMapper = (UserMapper)context.getBean("userMapper");
		ServletContext application = sce.getServletContext();
		List bookList = new ArrayList();
		bookList = userMapper.findBooks();
		application.setAttribute("itemList", bookList);
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		
	}
	
}

由于项目在加载是先加载了lintener而lintener并没有被spring管理,所以会导致userMapper为空,因此加上如下代码可以找到userMapper类:

	private ApplicationContext context;       //加上这句

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  //再加上这句

3、配置监听器

tomcat启动时执行sql语句加载数据库的数据到index.xml(欢迎界面)(前置条件:ssm框架)_第2张图片
4、初学,若有错误,请多指教

你可能感兴趣的:(ssm)