zoukankan      html  css  js  c++  java
  • javaEE web 系统安装时自定义初始化

    通常JavaWeb项目在第一次启动时我们需要做一些初始化工作,比如:初始化一个管理员的登录账户和密码,配置缓存、定时任务等,这些操作可以通过手工修改数据库完成,但是容易出错且繁琐,而且也很麻烦。如果这个java web 项目今天部署在这台机器上,你又要手动添加初始化的账户,明天部署到另一台机器上你又得重新录入初始化信息,可想而知老是做着同样的事情是非常无聊的,也很麻烦。

    javaEE提供了自定义启动初始化的功能-----servlet 可以去监听服务器在系统启动时自动运行监听器内的代码完成初始化工作。

    1) 定义一直执行初始化登陆账号的servlet类,如: Admin.java 

    package com.init;
    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.http.HttpServlet;
    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;
    import com.dao.impl.MySqlDao;
    public class Admin extends  HttpServlet  implements  ServletContextListener  {
     /**
         * 
         */
      private static final long serialVersionUID = 4167420593469044105L;
    public void contextDestroyed(ServletContextEvent sce) {
    System.out.println("这个函数内的代码将在服务器关闭时执行");
     }
     public void contextInitialized(ServletContextEvent sce) 
     {
    System.out.println("这个函数内的代码将在服务器启动时执行");
    /**
     * 获取spring配置信息,然后得到配置文件中配置的对象
     */
    WebApplicationContext applicationContext =  
    WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());  
    /**
     * 获取spring 配置文件的bean mySqlDao
     * spring配置文件中有<bean id=mySqlDao” class=com.dao.mySqlDao”/>
     * 的配置信息
     * 
     */
    MySqlDao mySqlDao =(MySqlDao)applicationContext.getBean("mySqlDao");
    /**
     * 实例化一个admin
     */
     Administrator admin=new Administrator();
     admin.setUsername("admin");
     admin.setPassword("password");
     //保存
     mySqlDao.save(admin);
    }
    }

    2) 在web.xml 中配置监听器,服务器在系统启动时自动运行监听器内的代码完成初始化

     <listener>
     <listener-class>com.init.Admin</listener-class>

     </listener

  • 相关阅读:
    Linux上查找
    Linux进程
    Linux重定向
    Linux上常用的基本命令
    LInux上返回到切换目录前的目录
    【网络知识之一】4/7层网络模型
    【操作系统之十五】iptables黑白名单、自定义链、网络防火墙、常用动作
    【操作系统之十四】iptables扩展模块
    【操作系统之十三】Netfilter与iptables
    【操作系统之十二】分支预测、CPU亲和性(affinity)
  • 原文地址:https://www.cnblogs.com/wuweidu/p/3896838.html
Copyright © 2011-2022 走看看