SMM整合页面初始化加载

SMM整合页面初始化加载

web.xml需要配置

 
 <!--  添加获取博主信息的监听器 -->
  <listener>
      <listener-class>com.lyj.listener.InitBloggerData</listener-class>
  </listener>

applicationContext.xml需要配置

 <!-- 自动扫描包中的bean -->
    <context:component-scan base-package="com.lyj.dao" />
    <context:component-scan base-package="com.lyj.service" />

spring-mvc.xml需要配置

<!-- 扫描所有com.lyj.controller包下面的所有controller -->
    <context:component-scan base-package="com.lyj.controller" />

重点是Listener的代码

package com.lyj.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import com.lyj.entity.Blogger;
import com.lyj.service.BloggerService;

@Component //注意这个一定要
public class InitBloggerData implements ServletContextListener,ApplicationContextAware {

    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        InitBloggerData.applicationContext=applicationContext;
    }
    
    private static ApplicationContext applicationContext;
    
    public void contextInitialized(ServletContextEvent sce) {
        
        System.out.println(applicationContext);
        //先获取servlet上下文
        ServletContext application=sce.getServletContext();
        
        //根据spring的上下文获取bloggerService这个bean
        BloggerService bloggerService=(BloggerService) applicationContext.getBean("bloggerService");
        //获取博主信息
        Blogger blogger=bloggerService.getBloggerData();
        //由于密码也获取到了,比较敏感,我们也不需要这个,所以把密码清空掉
        blogger.setPassword(null);
        //将博主信息存入application域中
        application.setAttribute("blogger", blogger);
    }
    

    public void contextDestroyed(ServletContextEvent sce) {
        
    }

}

这四个重点缺一个都会报错

常见的错误是
严重: Exception sending context initialized event to listener instance of class com.lyj.listener.InitBloggerData
java.lang.NullPointerException

意思就是说初始化事件的时候出现了异常了 
一般情况下是因为缺少了某一个包导致的,我猜你现在是缺少了common-pool.jar这个jar包,如果你项目里面有这个包了,看看版本对不对,版本不对也会导致这样的问题。 
异常处理一般按这样的流程去处理(呵呵,这个是我自己的流程,反正我是这样来处理的) 
1,先检查是否导入了项目所需要的全部Jar包 
2,检查导入的jar包的版本对不对 
3,检查路径是否正确,有些时候applicationContext.xml 这个文件找不到,只要先放到classes下面先就能找到了 
4,如果都没问题,那就一步一步debug,看看到底到了哪里的时候抛出异常了 

本文来自我的ssm博客 http://iclyj.cn
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值