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

  • 相关阅读:
    计算机语言的学习之道
    单麦克风远场语音降噪解决方案
    ESP8266 SPI 开发之软件驱动代码分析
    ESP8266 SPI 开发之软硬基础分析
    蓝牙5.0协议及下载地址
    python中往json中添加文件的方法
    Python isinstance() 函数含义及用法解析
    从一线方案商的角度来看高通QCC3020芯片
    Ubuntu18.04声卡配置问题解决
    python 音频通道分离的源码实现
  • 原文地址:https://www.cnblogs.com/wuweidu/p/3896838.html
Copyright © 2011-2022 走看看