durid监控是以web服务访问,因此要访问到监控页面
势必要启动web容器,如果你的项目是web project 那么简单了配置个tomcat或是jetty,直接运行就OK,如果你的项目是集成的java project项目,那么如何解。
首先无论是java project 还是web project项目配置都是一样的没有差异。此处以java project配置main启动druid监控为例,
引入jetty容器(tomcat也可以)依赖和druid监控服务包的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>9.4.8.v20171121</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.3.0.M1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>9.4.8.v20171121</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.3.0.M1</version>
</dependency>
jetty的依赖包引入jetty-webapp.jar、jetty-server.jar、jetty-servlet.jar即可,可以方便配置引入jetty-all,依赖配置结束后配置web.xml,那么问题来了 因为不是web project项目没有webapp/WEB-INF/路径,那么这些文件都放在那里呢?放在src/main/resources下就行了,后面手动指定文件加载路径即可。
其次 web.xml中添加如下配置
<!-- druid连接池 -->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- druid连接池 -->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
配置已基本完成,下面看main方法中实现过程
public static void startByJetty() throws Exception{
long time = System.currentTimeMillis();
// 服务器的监听端口
Server server = new Server(9999);
// 关联一个已经存在的上下文
WebAppContext context = new WebAppContext();
String filePath = StartServices.class.getResource("/web.xml").getPath();
// 设置描述符位置
context.setDescriptor(filePath.substring(1, filePath.length()));
// 设置Web内容上下文路径
context.setResourceBase("./src/main/resources");
// 设置上下文路径
context.setContextPath("/");
context.setParentLoaderPriority(true);
server.setHandler(context);
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("server is start. 耗时:" + (System.currentTimeMillis() - time));
}
参数代码中已标有注释,启动你的main方法,http://localhost:9999/druid/index.html来监控你的性能吧
Done.