首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Quarkus应用程序中注入ServletContext

在Quarkus应用程序中注入ServletContext
EN

Stack Overflow用户
提问于 2019-06-10 10:32:41
回答 2查看 3.2K关注 0票数 3

在玩夸库斯时,我试图在我的应用程序中注入ServletContext

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Controller
@Path("/greeting/")
@RequestScoped
public class GreetingResource {
    @Inject
    ServletContext servletContext;
}

它编译得很好,但是在打包阶段夸克-maven-plugin失败了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[1] Unsatisfied dependency for type javax.servlet.ServletContext and qualifiers [@Default]
    - java member: exampleapp.GreetingResource#servletContext
    - declared on CLASS bean [types=[java.lang.Object, exampleapp.GreetingResource], qualifiers=[@Default, @Any], target=exampleapp.GreetingResource]

我的应用程序依赖于io.quarkus:quarkus-resteasy,,它可以拉进io.quarkus:quarkus-undertow,,而后者又可以拉进io.undertow:undertow-servlet.

我希望任何底层扩展都能提供ServletContext的注入,但显然我的假设是错误的.有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-10 12:08:20

@Inject ServletContext只工作于Java环境。Quarkus集成JAX-RS,以便您可以通过使用ServletContext JAX RS @Context来访问实例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Controller
@Path("/greeting/")
@RequestScoped
public class GreetingResource {

    // javax.ws.rs.core.Context
    @Context
    ServletContext servletContext;

    // OR

    @GET
    @Path("/test")
    @Produces({ MediaType.TEXT_PLAIN })
    public Response test(@Context ServletContext servletContext) {
        // return ...
    }
}

您的方式也是有效的,但是它显式地依赖于下面的API。

更新:

Quarkus 0.17.0+使用CDI @Inject注释增加了对ServletContext注入的支持。参见此https://github.com/quarkusio/quarkus/pull/2850

票数 4
EN

Stack Overflow用户

发布于 2019-06-10 11:43:09

一个小摆设告诉我,这种类型没有制作方法.下面的片段帮助了我:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Singleton;
import javax.servlet.ServletContext;

import io.undertow.servlet.handlers.ServletRequestContext;

@Singleton
public class ServletContextProducer {
    @Produces
    @RequestScoped
    public ServletContext servletContext() {
        return ServletRequestContext.current().getCurrentServletContext();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56531759

复制
相关文章
quarkus依赖注入之三:用注解选择注入bean
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus依赖注入》系列的第三篇,前文咱们掌握了创建bean的几种方式,本篇趁热打铁,学习一个与创建bean有关的重要知识点:一个接口如果有多个实现类时,bean实例应该如何选择其中的一个呢?可以用注解来设定bean的选择逻辑 如果您熟悉spring,此刻应该会想到ConditionalXXX注解,下面的代码来自spring官方,注解Con
程序员欣宸
2022/04/13
7560
quarkus依赖注入之三:用注解选择注入bean
quarkus依赖注入之一:创建bean
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于依赖注入 对一名java程序员来说,依赖注入应该是个熟悉的概念,简单的说就是:我要用XXX,但我不负责XXX的生产 以下代码来自spring官方,serve方法要使用MyComponent类的doWork方法,但是不负责MyComponent对象的实例化,只要用注解Autowired修饰成员变量myComponent,spring环境会负责为myCompon
程序员欣宸
2022/04/13
1.1K0
quarkus依赖注入之一:创建bean
quarkus依赖注入之四:选择注入bean的高级手段
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus依赖注入》系列的第四篇,在应用中,一个接口有多个实现是很常见的,那么依赖注入时,如果类型是接口,如何准确选择实现呢?前文介绍了五种注解,用于通过配置项、profile等手段选择注入接口的实现类,面对复杂多变的业务场景,有时候仅靠这两种手段是不够的,最好是有更自由灵活的方式来选择bean,这就是本篇的内容,通过注解、编码等更多方式选
程序员欣宸
2022/04/13
9000
quarkus依赖注入之四:选择注入bean的高级手段
quarkus依赖注入之八:装饰器(Decorator)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《quarkus依赖注入》系列的第八篇,目标是掌握quarkus实现的一个CDI特性:装饰器(Decorator) 提到装饰器,熟悉设计模式的读者应该会想到装饰器模式,个人觉得下面这幅图很好的解释了装饰器模式,左下角的红框是关键点:自己的send方法中,先调用父类的send(也就是被装饰类的send),然后才是自己的业务逻辑 quarku
程序员欣宸
2022/05/06
6270
quarkus依赖注入之八:装饰器(Decorator)
quarkus依赖注入之九:bean读写锁
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《quarkus依赖注入》的第九篇,目标是在轻松的气氛中学习一个小技能:bean锁 quarkus的bean锁本身很简单:用两个注解修饰bean和方法即可,但涉及到多线程同步问题,欣宸愿意花更多篇幅与各位Java程序员一起畅谈多线程,聊个痛快,本篇由以下内容组成 关于多线程同步问题 代码复现多线程同步问题 quarkus的bean读写锁 关于
程序员欣宸
2022/05/06
5030
quarkus依赖注入之九:bean读写锁
quarkus依赖注入之五:拦截器(Interceptor)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus依赖注入》系列的第五篇,经过前面的学习,咱们熟悉了依赖注入的基本特性,接下来进一步了解相关的高级特性,先从本篇的拦截器开始 如果您熟悉spring的话,对拦截器应该不会陌生,通过拦截器可以将各种附加功能与被拦截代码的主体解耦合,例如异常处理、日志、数据同步等多种场景 本篇会演示如何自定义拦截器,以及如何对bean的方法进行进行拦截
程序员欣宸
2022/04/13
1.4K1
quarkus依赖注入之五:拦截器(Interceptor)
quarkus依赖注入之二:bean的作用域
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于bean的作用域(scope) 官方资料:https://lordofthejars.github.io/quarkus-cheat-sheet/#_injection 作为《quarkus依赖注入》系列的第二篇,继续学习一个重要的知识点:bean的作用域(scope),每个bean的作用域是唯一的,不同类型的作用域,决定了各个bean实例的生命周期,例
程序员欣宸
2022/04/13
5770
quarkus依赖注入之二:bean的作用域
quarkus依赖注入之六:发布和消费事件
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus依赖注入》系列的第六篇,主要内容是学习事件的发布和接收 如果您用过Kafka、RabbitMQ等消息中间件,对消息的作用应该不会陌生,通过消息的订阅和发布可以降低系统之间的耦合性,这种方式也可以用在应用内部的多个模块之间,在quarkus框架下就是事件的发布和接收 本篇会演示quarkus应用中如何发布事件、如何接收事件,全文由以
程序员欣宸
2022/04/13
5830
quarkus依赖注入之六:发布和消费事件
quarkus依赖注入之七:生命周期回调
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇的知识点是bean的生命周期回调:在bean生命周期的不同阶段,都可以触发自定义代码的执行 触发自定义代码执行的具体方式,是用对应的注解去修饰要执行的方法,如下图所示: 有两种模式可以实现生命周期回调:拦截器模式和自定义模式,接下来通过编码依次学习 拦截器模式 《拦截器(Interceptor)》已详细介绍了quarkus拦截器的自定义和使用,
程序员欣宸
2022/04/13
6640
quarkus依赖注入之七:生命周期回调
ServletContext
context.setAttribute(String name,Object value);
木瓜煲鸡脚
2019/08/20
4550
ServletContext
Request 解决了一次请求内的数据共享问题,session 解决了用户不同请求的数据共享问题,而不同的用户的数据共享则该使用使用 ServletContext 对象。
Carlos Ouyang
2019/08/19
3250
quarkus依赖注入之十二:禁用类级别拦截器
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《quarkus依赖注入》系列的第十二篇,继续学习拦截器的另一个高级特性:禁用类级别拦截器 本篇由以下内容构成 编码验证类拦截器和方法拦截器的叠加效果 用注解NoClassInterceptors使类拦截器失效 总的来说,本篇内容非常简单,就是说清楚NoClassInterceptors注解用在哪里,怎么用,可以轻松愉快的阅读 类拦截器和方法
程序员欣宸
2022/05/06
4180
quarkus依赖注入之十二:禁用类级别拦截器
ServletContext对象
每一个 web 应用都有且仅有一个ServletContext 对象,又称 Application 对象,从名称中可知,该对 象是与应用程序相关的。在 WEB 容器启动的时候,会为每一个 WEB 应用程序创建一个对应的 ServletContext 对象。
用户9615083
2022/12/25
2670
Quarkus学习二 - 一个响应式的应用程序
官方网站用的是 PostgreSQL , 这里改成了MySQL,其他不变 选择依赖:
eeaters
2022/06/14
5640
Quarkus学习二 - 一个响应式的应用程序
ServletContext对象
ServletContext对象的作用是在整个Web应用的动态资源之间共享数据!例如在AServlet中向ServletContext对象中保存一个值,然后在BServlet中就可以获取这个值,这就是共享数据了。
星哥玩云
2022/09/14
2920
在 .NET 应用程序中运行 JavaScript
前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。
独立观察员
2022/12/06
2.6K0
在 .NET 应用程序中运行 JavaScript
ServletContext 类
4、ServletContext 是在 web 工程部署启动的时候创建。在 web 工程停止的时候销毁。
一个风轻云淡
2022/11/15
2040
ServletContext 类
quarkus依赖注入之十:学习和改变bean懒加载规则
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《quarkus依赖注入》系列的第十篇,来看一个容易被忽略的知识点:bean的懒加载,咱们先去了解quarkus框架下的懒加载规则,然后更重要的是掌握如何改变规则,以达到提前实例化的目标 总的来说本篇由以下内容构成 关于懒加载 编码体验懒加载 改变懒加载规则的第一种手段 改变懒加载规则的第二种手段(居然和官方资料有出入) 小结 关于懒加载(L
程序员欣宸
2022/05/06
6100
quarkus依赖注入之十:学习和改变bean懒加载规则
Quarkus初体验
Quarkus是为GraalVM和HotSpot量身定制的Kubernetes Native Java框架,由最佳的Java库和标准精心打造而成。Quarkus的目标是使Java成为Kubernetes和无服务器环境中的领先平台,同时为开发人员提供统一的反应式和命令式编程模型,以优化地满足更广泛的分布式应用程序架构。
是小张啊喂
2021/08/09
1.4K0
quarkus依赖注入之十三:其他重要知识点大串讲(终篇)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《quarkus依赖注入》系列的终篇,前面十二篇已覆盖quarkus依赖注入的大部分核心内容,但依然漏掉了一些知识点,今天就将剩下的内容汇总,来个一锅端,轻松愉快的结束这个系列 总的来说,本篇由以下内容构成,每个段落都是个独立的知识点 几处可以简化编码的地方,如bean注入、构造方法等 WithCaching:特定场景下,减少bean实例化次数
程序员欣宸
2022/05/09
5640
quarkus依赖注入之十三:其他重要知识点大串讲(终篇)

相似问题

在Quarkus中根据应用程序属性注入不同的实现

120

无法在应用程序范围的CDI bean中注入ServletContext

10

通过Quarkus注入服务中的HttpServerRequest

1152

将应用程序属性作为RegisterRestClient baseUri Quarkus注入

118

使用Quarkus的依赖注入

29
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文