使用Gradle在嵌入式Web容器Jetty中运行Web应用

使用Gradle第一次构建Web应用的代码基础上我们进行修改 ###Jetty 插件 在 Maven 等构建的项目中,我们要使用 Jetty 做嵌入式 Web 容器运行 Web 应用,通常需要添加 Jetty 相关依赖以及进行类似下面代码配置:

    package com.coderknock.jettystudy; 
      
    import org.eclipse.jetty.server.Server;  
    import org.eclipse.jetty.webapp.WebAppContext;  
      
    public class WebAppContextWithFolderServer {  
        public static void main(String[] args) throws Exception {  
            Server server = new Server(8080);  
      
            WebAppContext context = new WebAppContext();  
            context.setContextPath("/myapp");  
            context.setDescriptor("E:/share/test/struts2-blank/WEB-INF/web.xml");  
            context.setResourceBase("E:/share/test/struts2-blank");  
            context.setParentLoaderPriority(true);  
            server.setHandler(context);  
      
            server.start();  
            server.join();  
        }  
    }  

在 Gradle 构建的项目中,我们可以使用 Jetty 插件从而省略相关依赖的引入以及上面代码的编写 build.gradle:

apply plugin:'jetty'

通过 Gradle 的 API 一个插件可以访问另一个插件的配置,所以就可以减少相当部分的代码。 在添加了 Jetty 插件后我们运行项目【为了避免不必要的麻烦,我们将项目的目录改为了 project 避免使用中文】:

www.coderknock.com$ gradle jettyRun
 Starting a Gradle Daemon (subsequent builds will be faster)
 The Jetty plugin has been deprecated and is scheduled to be removed in Gradle 4.0. Consider using the Gretty (https://github.com/akhikhl/gretty) plugin instead.
         at build_6ecrowvh1t5jyzhh29knepzxf.run(D:\Windows\Desktop\LearnGradle\使用Gradle在嵌入式Web容器Jetty中运行Web应 用\project\build.gradle:2)
 :compileJava
 :processResources NO-SOURCE
 :classes
 > Building 75% > :jettyRun > Running at http://localhost:8080/project

此时我们通过 http://localhost:8080/project 就可以访问我们的项目了,通过 Ctrl + c 可以停止项目。 我们可以通过一些配置来修改 Jetty 的配置例如下面配置可以修改启动的项目名以及端口:

jettyRun {
    httpPort = 9091
    contextPath = 'coderknockJetty'
}

###Gretty 插件 通过上面的编译输出我们可以看到 Jetty 插件在 Gradle 4.0 中将会被删除,推荐使用 Gretty 插件,我们再次修改项目 build.gradle 将 apply plugin:'jetty' 更改为 apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'并删除或注释掉jettyRun相关配置,然后运行项目【需要联网下载相关依赖】:

 www.coderknock.com$ gradle appRun
 :prepareInplaceWebAppFolder UP-TO-DATE
 :createInplaceWebAppFolder UP-TO-DATE
 :compileJava UP-TO-DATE
 :processResources NO-SOURCE
 :classes UP-TO-DATE
 :prepareInplaceWebAppClasses UP-TO-DATE
 :prepareInplaceWebApp UP-TO-DATE
 :appRun
 15:52:07 INFO  Jetty 9.2.15.v20160210 started and listening on port 8080
 15:52:07 INFO  ToDo Application runs at:
 15:52:07 INFO    http://localhost:8080/project
 Press any key to stop the server.
 > Building 87% > :appRun 

Gretty 自定义配置与 Jetty 大致相同:

//gretty 配置 更详细的文档可以查看 http://akhikhl.github.io/gretty-doc/
    gretty {
        httpPort = 9090
        contextPath = 'coderknock'
    }

相关代码

转载于:https://my.oschina.net/coderknock/blog/857670

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring IOC(控制反转)是 Spring 框架的核心性之一,它通过管理和控制对象的创建、依赖关系和生命周期,实现了松耦合和可测试性,提高了应用程序的可维护性和可扩展性。在 Java Web 使用 Spring IOC 时,有一些进阶知识点、重点和操作流程可以注意。 1. 进阶知识点: - 使用注解配置:Spring IOC 支持使用注解来配置依赖注入、Bean 的作用域、切面等,如 @Autowired、@Component、@Scope、@Aspect 等注解。 - 使用 Java 配置类:除了 XML 配置外,Spring IOC 还支持使用 Java 配置类来配置 Bean,通过 @Configuration 和 @Bean 注解来实现。 - AOP(面向切面编程):Spring IOC 集成了 AOP,可以通过切面来实现横切关注点的统一处理,如事务管理、日志记录等。 - 嵌入容器:Spring IOC 可以与嵌入容器(如 Tomcat、Jetty)集成,简化部署和配置。 2. 重点: - Bean 的定义和注入:理解如何定义 Bean,并掌握构造函数注入、Setter 方法注入和注解注入等方。 - Bean 的作用域:了解 Bean 的作用域(如 Singleton、Prototype),掌握如何配置和使用不同的作用域。 - Bean 的生命周期:了解 Bean 的生命周期,包括初始化和销毁过程,可以通过实现 InitializingBean 和 DisposableBean 接口或使用 @PostConstruct 和 @PreDestroy 注解来干预生命周期。 - AOP 的使用:了解 AOP 的原理和基本概念,掌握如何配置切面和切点,以及如何编写通知(Advice)。 3. 操作流程: - 引入 Spring 相关依赖:在项目的 Maven 或 Gradle 配置文件添加 Spring 相关的依赖。 - 配置 Spring 配置文件或 Java 配置类:定义和配置需要被 Spring 管理的 Bean,指定依赖关系、作用域等。 - 在代码使用依赖注入:通过构造函数注入、Setter 方法注入或注解注入的方,将依赖的对象注入到需要使用的地方。 - 启动 Spring 容器:在应用程序启动时,启动 Spring 容器,让 Spring 管理和控制对象的生命周期。 - 使用 Spring 管理的对象:通过从容器获取 Bean 的实例,使用 Spring 管理的对象进行业务逻辑的处理。 以上是关于 Spring IOC 在 Java Web 运用时的进阶知识点、重点和操作流程的简要介绍,希望对你有帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值