Servlet 3.0 的构造函数依赖注入?

2024-01-09

从 Servlet 3.0 开始,可以通过编程方式注册 Servlet 实例javax.servlet.ServletContext#addServlet。这个类还有一个createServlet分析一些注释并执行依赖注入的方法。我想如果我不需要注解处理,是否还需要这个方法。我想要一个带有常用构造函数的 servlet,以通过依赖项注入设置所需的依赖项。

@Inject
public MyServlet(SomeDependency sd) {  // Constructor
  ...
}

问题:

  • 是否可以“手动”构建 servlet 实例而不需要createServlet? (new MyServlet())
  • 是否可以使用Java EE服务器的依赖注入机制来执行构造函数注入?怎么做?或者是否需要像 Guice 这样的单独的 DI 框架?

最近的 Java EE 6 标准现在支持 servlet 的依赖注入,相关部分称为 JSR-299 或 CDI。 JSR-299 参考实现,JBoss焊接 http://docs.jboss.org/weld/reference/latest/en-US/html/,如果您不想使用完整的 Java EE 6 应用服务器(例如 glassfish v3),也可以部署到 Tomcat 或 Jetty 等 servlet 容器中。

顺便说一下,通过嵌入式 Jetty 服务器,您可以使用其自定义 API 来添加预配置的 servlet 实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Servlet 3.0 的构造函数依赖注入? 的相关文章

随机推荐

  • 如何从祖父母标签继承CSS? [复制]

    这个问题在这里已经有答案了 我有一个两级嵌套的 div 我想应用包含类 c 的 div 其宽度与类 a 的 div 相同 如果它是父母 那么我想继承会完成这项工作 但这种情况下该怎么办呢 HTML 代码 div class a div cl
  • 如何将 Cassandra (>2.0) JVM 堆大小设置为 8GB?

    如何将 Cassandra gt 2 0 JVM 堆大小设置为 8GB 当我输入时free m它给了我以下内容 如何将 Cassandra JVM 堆大小设置为 8GB total used free shared buffers cach
  • 重命名 Pandas DataFrame 索引

    我有一个没有标题 带有日期时间索引的 csv 文件 我想重命名索引和列名 但使用 df rename 仅重命名列名 漏洞 我的版本是0 12 0 In 2 df pd read csv r D Data DataTimeSeries csv
  • 设置储值的 Svelte 用户注册问题

    helo 我正在尝试注册用户 成功后将 setContext 设置为新注册的用户 然后导航到主页 服务器正确响应并注册用户 但是当调用 setContext 时 我收到以下错误 index mjs 552 Uncaught 在承诺中 错误
  • EF 可以使用影子属性创建多列索引吗?

    我正在尝试使用影子属性创建多列唯一索引 我知道我只需添加一个属性就可以解决这个问题 但我想看看是否可以通过某种方式保持我的模型干净 要创建多列索引 您可以在 Fluent API 中使用以下选项 modelBuilder Entity
  • iOS/Swift:tableView cellForRowAtIndexPath 崩溃

    我在第 389 行遇到 EXC BREAKPOINT 崩溃 386 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UI
  • Angular 4 Reactive Forms FormControl 错误为 null

    如果我通过 Tab 键浏览文本输入而不输入任何内容 则会显示错误消息 div 指示所需的验证器已正确触发 但是 如果我在其中一个字段中输入任何内容 控制台会立即抛出此错误 Cannot read property required of n
  • Tkinter Entry 小部件之后的事件回调

    从这里的第一个答案 堆栈溢出 6548837 https stackoverflow com questions 6548837 how do i get an event callback when a tkinter entry wid
  • 为什么按钮点击触发与setTimeout()触发不同?

    考虑以下几乎相同的两个片段 区别在于 第一个使用setTimeout 触发事件 第二个在单击按钮时触发事件 如果您检查控制台 您将看到代码段 1 中的最后两行是 App rendering 1 folder s Observed js 片段
  • 为什么 vector::clear 不从向量中删除元素?

    当我使用clear on a std vector 它应该摧毁里面的所有元素vector 但事实并非如此 示例代码 vector
  • 在公式中显示字符串,而不是在 lm fit 中显示为变量

    我无法解决当lm sformula 执行后 它不显示分配给的字符串sformula 我有一种感觉 这是 R 处理函数参数的通用方式 而不是特定于线性回归 下面通过例子来说明这个问题 示例 1 有不受欢迎的 output lm formula
  • 如何更改 Atom 键绑定

    我正在寻找更改 Atom 文本编辑器的键绑定 我熟悉Android Studio Atom 是否允许我们自定义按键绑定 您必须转到 编辑 gt 首选项 gt 按键绑定 在此选项卡中 您可以看到实际的绑定 如果您想更改它 您可以访问键盘映射文
  • Apache Nifi解压

    我是 Apache NIFI 的新手 正在尝试构建一个 POC 流程 我也需要你的指导 我有一个名为 sample gz 的压缩 gz 文件 其中包含一个名为 sample file 的文件 我需要解压缩sample gz 文件并将 sam
  • ggplot2,如何在函数内使用访问数据框元素?

    我正在尝试使用 ggplot2 创建绘图来标准化许多类似绘图的创建 假设您可以使用 theme stat 或 geom 以及 运算符来堆叠大量选项 那么如何将其包装在函数中呢 我想创建一个函数来绘制数据框的各个部分 例如 library g
  • 使用 new 关键字创建的 Spring bean (@Component) 中的自动装配

    我有两颗春豆 如下 Component A Scope prototype public class A extends TimerTask Autowired private CampaignDao campaignDao Autowir
  • 当单元格背景颜色发生变化时,是否可以在 Excel 中触发事件?

    正如标题所说 我试图在单元格更改背景颜色时发生一些事情 比如说从红色变为绿色 但是只有当用户更改单元格中的值时才会触发工作表的更改事件 是否有解决方法来完成我想做的事情 或者这是一项不可能完成的任务 No 如 这是不可能的 VBA 中没有可
  • 将 SFINAE 与通用 lambda 结合使用

    泛型 lambda 可以利用 替换失败不是错误 规则 例子 auto gL auto func auto param1 auto params gt enable if t lt is integral lt std decay t
  • Listview数据绑定导致formview数据丢失

    在我的代码中 通过 Formview 研究后 我需要调用 listview databind 这使得无法获取 Formview 数据 即使它们仍然出现在屏幕中 这是我的代码 protected void DemandeSearchFormV
  • 如何从 pandas 数据框中的每一列创建子图

    我有一个包含 36 列的数据框 df 这些列绘制在单个绘图图表上 并使用下面的代码以 html 格式显示 import plotly offline as py import plotly io as pio pio write html
  • Servlet 3.0 的构造函数依赖注入?

    从 Servlet 3 0 开始 可以通过编程方式注册 Servlet 实例javax servlet ServletContext addServlet 这个类还有一个createServlet分析一些注释并执行依赖注入的方法 我想如果我