idea配置热加载,开发不用重启tomcat,tomcat配置热加载,发布项目不用重启tomcat,在自己项目的context配置jdbc数据源...
在conf/server.xml里面的Host加入Context节点,设置以下属性
path="/project_name"
docBase="project_name"
debug="1"
reloadable="true">
然后在Context节点加入以下子节点
<WatchedResource>META-INF/context.xml</WatchedResource>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
注:这些子节点的意思是读入你项目里的相应的配置文件
如:META-INF/context.xml这个文件里面可以配置jdbc数据源,格式如下
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
<Resource
name="jdbc/petforwebtest"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxWait="10000"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username=""
password=""
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8" />
</Context>
WEB-INF/web.xml可以配置tomcat启动时的初始化函数执行,格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<listener>
<listener-class>com.common.myInit</listener-class>
</listener>
</web-app>
com.common.myInit是要执行的类的全路径
myInit类需实现ServletContextListener接口
package com.common;
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
public class myInit implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
System.out.println("init pet-mgr");
DbUtils.initDataSource();
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("destroy pet-mgr");
}
}
数据库的连接及获取方式如下:
static DataSource ds = null;
public static void initDataSource(){
try {
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/petforwebtest");
}catch (Exception e){
e.printStackTrace();
}
}
public static Connection getConnect(){
try {
return ds.getConnection();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
然后将本项目的out/artifacts/pet_mgr_war_exploded目录重命名为上面的project_name,然后放到tomcat的webapps目录下面,以后更新的话,只替换project_name/WEB_INF/classes下面的东西即可
idea配置热加载的方式,首先要打开idea软件的热加载Files->Settings->Build,Execution,Deployment->Hotswap,如下配置
然后配置运行的配置项,点击Run->Edit Configurations,点开Server选项卡,配置如下:
然后只要idea的窗口失去焦点,就会自动编译
转载于:https://my.oschina.net/u/222749/blog/2907536