通常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

javaEE web 系统安装时自定义初始化的更多相关文章

  1. 【概念笔记】JavaEE - web part2

    IT`huhui前言录 续JavaEE - web part1 链接http://www.cnblogs.com/ithuhui/p/5930745.html, 持续修改更新. Cookie 1. 定 ...

  2. Web API配置自定义路由

    默认访问Web API时,是无需指定method名.它会按照默认的路由来访问.如果你的Web API中出现有方法重载时,也许得配置自定义路由: 标记1为自定义路由,标记2为默认路由,需要把自定义路由排 ...

  3. OC中实例变量可见度、setter、getter方法和自定义初始化方法

    在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特 ...

  4. PHP为fopen,file_get_contents等函数请求web地址时增加Http头的方法

    我们在使用fsockopen时可以方便的自定义自己请求的http头内容来访问某些对客户端请求头有特殊限制的网站,但是使用fopen,file_get_contents等函数请求web地址时怎么来灵活定 ...

  5. JavaEE web.xml 中ContextLoaderListener的解析

    ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在 ...

  6. 在eclipse中新建Dynamic web project时选择2.5和3.0的区别(里面涉及servlet和tomcat的问题)

    1.是指servlet的版本,是2.5的还是3.0的 servlet3.0以后支持异步 2.dynamic web module和对应的TOMCAT 版本 http://blog.sina.com.c ...

  7. springboot hikari 连接池 在启动时未初始化数据库连接问题

    在启动Springboot 项目时 2019-11-18 21:32:38.223 INFO 1080 --- [on(4)-127.0.0.1] o.s.web.servlet.Dispatcher ...

  8. 微信分享网页时自定义缩略图和简介(.net版本)

    要实现微信分享网页时自定义缩略图和简介,需开发者在公众平台网站中创建公众号.获取接口权限后,通过微信JS-SDK的分享接口,来实现微信分享功能. 下面来说明实现步骤. 第一部分 准备步骤 步骤一:注册 ...

  9. SpringBoot系列教程web篇之自定义异常处理HandlerExceptionResolver

    关于Web应用的全局异常处理,上一篇介绍了ControllerAdvice结合@ExceptionHandler的方式来实现web应用的全局异常管理: 本篇博文则带来另外一种并不常见的使用方式,通过实 ...

随机推荐

  1. Django值聚合,分组,事物,cookie,session

    1,聚合(aggregate):是queryset的一个 终止语句,它返回一个包含键值对的字典,键是的名称是聚合值的标识符,值是计算出来的聚合值,键的名称是按照字段和聚合函数自动生成出来的.用到的内置 ...

  2. 什么是cookie?session和cookie的区别?

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session ...

  3. c中的变量

    1 变量类型 1.1 static global or static .data/.bss 1.2 automic stack,its relevant to os kernel and compil ...

  4. command 'gcc' failed with exit status 1

    https://stackoverflow.com/questions/11094718/error-command-gcc-failed-with-exit-status-1-while-insta ...

  5. Linux __setup解析【转】

    本文转载自:http://blog.csdn.net/fdaopeng/article/details/7895037 __setup这条宏在Linux Kernel中使用最多的地方就是定义处理Ker ...

  6. HEOI2016 树

    传送门 这道题还是很简单的,可以树剖,然后还有看大佬暴力模拟AC的????!! 我们就执行俩操作,一个是单点修改,这个随便修,然后就是查询一个点,离他最近的被打过标记过的祖先.这个可以这么想,我们先q ...

  7. Linux设备模型 (1)

    随着计算机的周边外设越来越丰富,设备管理已经成为现代操作系统的一项重要任务,这对于Linux来说也是同样的情况.每次Linux内核新版本的发布,都会伴随着一批设备驱动进入内核.在Linux内核里,驱动 ...

  8. hdu 1284

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. 小程序-demo:小程序示例-page/component

    ylbtech-小程序-demo:小程序示例-page/component 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...

  10. bzoj1798 1

    1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 5866  Solved: 2079[Submit ...