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
javaEE web 系统安装时自定义初始化的更多相关文章
- 【概念笔记】JavaEE - web part2
IT`huhui前言录 续JavaEE - web part1 链接http://www.cnblogs.com/ithuhui/p/5930745.html, 持续修改更新. Cookie 1. 定 ...
- Web API配置自定义路由
默认访问Web API时,是无需指定method名.它会按照默认的路由来访问.如果你的Web API中出现有方法重载时,也许得配置自定义路由: 标记1为自定义路由,标记2为默认路由,需要把自定义路由排 ...
- OC中实例变量可见度、setter、getter方法和自定义初始化方法
在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特 ...
- PHP为fopen,file_get_contents等函数请求web地址时增加Http头的方法
我们在使用fsockopen时可以方便的自定义自己请求的http头内容来访问某些对客户端请求头有特殊限制的网站,但是使用fopen,file_get_contents等函数请求web地址时怎么来灵活定 ...
- JavaEE web.xml 中ContextLoaderListener的解析
ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在 ...
- 在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 ...
- springboot hikari 连接池 在启动时未初始化数据库连接问题
在启动Springboot 项目时 2019-11-18 21:32:38.223 INFO 1080 --- [on(4)-127.0.0.1] o.s.web.servlet.Dispatcher ...
- 微信分享网页时自定义缩略图和简介(.net版本)
要实现微信分享网页时自定义缩略图和简介,需开发者在公众平台网站中创建公众号.获取接口权限后,通过微信JS-SDK的分享接口,来实现微信分享功能. 下面来说明实现步骤. 第一部分 准备步骤 步骤一:注册 ...
- SpringBoot系列教程web篇之自定义异常处理HandlerExceptionResolver
关于Web应用的全局异常处理,上一篇介绍了ControllerAdvice结合@ExceptionHandler的方式来实现web应用的全局异常管理: 本篇博文则带来另外一种并不常见的使用方式,通过实 ...
随机推荐
- mysql数据库存放路径
在你的my.ini 文件中定义的参数 datadir 指定的目录中. SQL code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 mysql> select @@da ...
- “千千静听”滚动标题栏,非常简单!(时间器控制窗口标题栏文字,然后赋值给Application.Title)
记得曾写过类似功能,但由于对Delphi数据类型不清楚,要花不少代码去处理中文被切半而出现乱码的尴尬.后来知道只需把字符串定义成 WideString 即可解决半个中文的问题了. 实现过程:不停地剪切 ...
- CMMI Institute Conference 2014中国大会
我在大会上做SPD(Strategic Policy Deployment战略部署策略)的演讲,和来自各个公司的高管进行了热烈的讨论.获得好评. 有兴趣的朋友能够点击下面链接:Stratehttp:/ ...
- GitHub Pages使用入门
1.什么是GitHub Pages GitHub Pages可以当做项目的Websites,GitHub Pages有两种最基本的用法: 作为你自己(或者组织)的网站(访问地址示例:http://us ...
- 表单提交数据量大于2m,java 后台接受不到表单传递过来的数据
一般来说 post请求提交的数据无大小限制,但是tomcat 设置默认的表单传输数据大小不能2m,这时候当数据大于2m后台接收达不到表单的数据,需要修改tomcat的server.xml的的maxPo ...
- 清空sql 日志
USE [master] GO ALTER DATABASE 库名 SET RECOVERY SIMPLE GO USE 库名 GO ,,TRUNCATEONLY) GO USE [master] G ...
- 网络驱动移植之简述CS8900A网络芯片的基本原理
CS8900A数据手册:http://www.cirrus.com/cn/products/cs8900a.html 1.概述 CS8900A是CIRRUS LOGIC公司生产的低功耗.性能优越的16 ...
- Ubuntu上配置Eclipse:安装CDT【转】
本文转载自:http://www.linuxdiyf.com/linux/23519.html 在最新的 Ubuntu Kylin 16.04 中安装了eclipse,在纠结了很久的网络问题之后,开始 ...
- python名片管理系统
1.代码: (1)主程序 #!/usr/bin/env python # -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环 ...
- 超强XSS攻击利器
======================================================================= BackTrack 5 R1 XSS研究之XSSer(超 ...