为什么要用Jetty?
我们在开发过程中,经常遇到修改一个java类,哪怕只修改了一行代码,也要重启Tomcat才能看到修改结果的情况。这样也许修改代码只花了5秒钟,要看到结果却需要等50秒钟。有没有一种方法可以不用重应用启服务器,直接可以看到修改结果,就像修改Jsp一样呢?
答案是有——那就是使用Jetty。
之前也有同事写过使用Jetty的案例,不过那是以插件的方式去用,我个人比较偏好“轻量”开发,不喜欢弄一大堆插件在eclipse里面,因此这里给大家提供另一种选择——直接以application的方式来运行Jetty,只需要将相应的jar包加入到类路径中去就行了。
第一步,引入相应的jar包
将附件中的压缩文件,解压到任意目录,然后在eclipse里面新建一个“User Libraries”,将这些jar添加进去。
然后将这个libraries添加到我们正在开发的项目中去。
第二步,编写Jetty启动程序
程序很简单,只有一个main方法即可:
public static void main(String[] args) throws Exception {
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(80); // 设置要监听的端口.
server.addConnector(connector);
WebAppContext context = new WebAppContext();
context.setContextPath("/irm"); // 设置上下文路径
// 设置web应用根路径
context.setResourceBase("D:/java/workspace/EKP-IRM/WebContent");
HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.addHandler(context);
server.setHandler(handlerCollection);
server.start();
}
第三步,开始调试
以debug方式运行第二步中编写的启动程序(注意一定要是debug方式,否则无法热加载改动过的Java类),打开浏览器,开始访问。
Jetty的局限性
只能热加载Java类,无法热加载资源文件、Struts配置文件、Spring配置文件等。
调试次数多了之后,容易出现热加载Java类失败的情况,此时不容易发觉,还以为自己改得不对。
分享到:
相关推荐
在MyEclipse中,通过安装Jetty插件,可以直接在IDE内部启动和调试Jetty服务器,无需离开开发环境,这样可以大大加快开发和测试的迭代速度。Jetty插件通常会提供图形化的配置界面,使得设置端口、虚拟主机、上下文...
总之,Maven和Jetty的集成为Java Web开发带来了很多便利,它简化了项目管理,加快了开发迭代速度,并提供了方便的调试和测试环境。通过合理配置Maven的POM文件和使用Jetty插件,开发者可以更专注于代码编写,而不必...
5. 并行构建:能并行处理任务,加快构建速度。 在IDEA中设置Spring Boot 2与Gradle的项目,通常需要以下步骤: 1. 创建新项目:选择"Spring Initializr",配置项目基本信息(如groupId、artifactId、版本等)。 2. ...
- **启动优化**:通过调整启动配置,如减少启动插件,可以加快Eclipse的启动速度。 以上只是Eclipse开发帮助中的一小部分,实际使用中还有许多其他特性,如插件市场、JDT(Java Development Tools)的代码提示和...
3. 文件处理:多线程读写大文件,加快处理速度。 4. 定时任务:如Quartz,利用线程池调度定时任务,避免资源浪费。 总之,多线程是现代软件开发中不可或缺的一部分,理解和熟练掌握多线程技术对于提升程序性能和...
3. **快速开发**:通过插件,开发者可以直接在IDE内生成服务客户端和服务端代码,大大加快开发速度。 4. **部署灵活性**:CXF和Axis2都可以独立部署,也可以嵌入到Tomcat、Jetty等Servlet容器中,提供更高的灵活性。...
通过热部署,开发者可以即时看到代码修改后的效果,无需等待漫长的服务器重启过程,从而加快了开发迭代的速度。 Eclipse中的热部署插件主要指的是JRebel,这是一款由Zeroturnaround公司开发的强大工具。JRebel与...
使用运行时编译器时,以“运行”模式(而不是“调试”模式)运行应用程序可以大大加快连续主题的编译速度。 强烈建议禁用生产WAR文件的运行时编译。使用Vaadin预发行版如果默认情况下未启用Vaadin预发行版,请使用...
- **UI组件库**: 如Element UI等,提供丰富的UI组件,加快开发速度。 ##### 3. MySQL数据库 MySQL是一款广泛使用的开源关系型数据库管理系统。在本项目中,MySQL主要负责数据的存储和管理,具体包括: - **表结构...
14. **部署与服务器配置**:了解Tomcat、Jetty等应用服务器的配置和部署,以及Nginx、Apache等反向代理服务器的使用,是实现Java Web应用上线的关键。 15. **持续集成/持续部署(CI/CD)**:利用Jenkins、Travis CI等...
3. **0-RTT(零往返时间)连接建立**:QUIC可以在首次通信时就发送应用数据,减少了握手延迟,加快了页面加载速度。 4. **内置加密**:QUIC将加密和身份验证集成到协议中,使得连接更加安全,减少了中间人攻击的...
- **提高效率**:加快开发速度,减少错误。 - **易于上手**:新手也能快速入门Spring Boot开发。 #### 三、自动化的依赖管理 - **Starter概念**:每个Starter包含一组相关的依赖和配置,开发者可通过引入Starter...
这减少了频繁启动服务器的时间,特别是在进行调试和测试时,能够快速验证代码更改的效果,加快了开发迭代的速度。 【详细说明】 1. **热启动原理**:MyEclipse通过监控项目的源代码目录,一旦检测到代码有变动,就...
- 使用Jenkins或GitLab CI/CD等工具,实现自动化构建和部署,加快开发迭代速度。 综上所述,Java版图书管理系统是集成了多种技术的复杂软件工程,涵盖了从需求分析、设计、编码、测试到运维的全过程。通过学习和...
11. **持续集成/持续部署(CI/CD)**:如Jenkins、GitLab CI/CD,它们自动化构建、测试和部署流程,确保代码质量并加快迭代速度。 12. **版本控制系统**:如Git,用于代码版本管理和团队协作。熟悉分支管理、合并...
- **索引**:提高查询速度,如在图书标题字段上创建索引,加快查找特定书籍的速度。 - **存储过程**:预编译的SQL语句集合,可以提高性能并简化代码管理。 - **事务管理**:确保数据的一致性和完整性,如用户借阅...
2. **利用模板加快开发速度**:熟练掌握MyEclipse提供的各种模板,可以大大提高开发效率。 3. **利用自动化测试确保代码质量**:充分利用MyEclipse集成的测试框架,编写单元测试和集成测试,确保代码质量。 4. **...
在某些情况下,可能需要跳过测试直接构建项目,以加快构建速度或解决测试环境问题。 #### 5. Building Offline 当网络连接不稳定时,可以使用离线模式构建项目,避免因下载依赖失败而导致的构建中断。 #### 6. ...
MySQL是一款广泛使用的开源关系型数据库管理系统,其特点是速度快、成本低且功能强大。在本项目中,MySQL主要负责存储用户的个人信息、订单信息以及菜单信息等数据。数据库设计时需考虑的关键因素包括: - **表结构...
- **热部署与自动重启**:Spring Boot 支持开发过程中的热部署,即在修改源代码后自动重新编译并重启应用,从而加快了开发速度。 - **自动配置报告**:Spring Boot 可以自动生成配置报告,帮助开发者了解当前应用...