在conf/server.xml裏面的Host加入Context節點,設置如下屬性
path="/project_name"
docBase="project_name"
debug="1"
reloadable="true">java
而後在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="/">mysql
<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;web
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;sql
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");
}
}tomcat
數據庫的鏈接及獲取方式以下:
static DataSource ds = null;app
public static void initDataSource(){
try {
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/petforwebtest");
}catch (Exception e){
e.printStackTrace();
}
}webapp
public static Connection getConnect(){
try {
return ds.getConnection();
}catch (Exception e){
e.printStackTrace();
return null;
}
}ide
而後將本項目的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的窗口失去焦點,就會自動編譯