如何在servlet中使用依赖注入?

2024-01-11

如何将对象注入到 servlet 中?

我的意思是,我不能使用构造函数 DI,因为 servlet 是由 servlet 容器实例化的。
而且我也没有看到为 servlet 实现基于 setter 的 DI 的好方法。

我应该使用 servlet 监听器吗?有没有最佳实践?

附:我既没有 Spring,也没有 Guice,也没有任何其他 DI 框架,我对手动依赖注入感兴趣。


这在 Servlet 3.0 下是可能的。您注册一个ServletContextListener http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html它以编程方式注册 Servlet 实例addServlet(字符串,Servlet) http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#addServlet%28java.lang.String,%20javax.servlet.Servlet%29在应用程序启动之前调用 ServletContext 的方法。由于您自己实例化 Servlet 实例,因此您可以为它们提供适当的构造函数并注入依赖项。

我创建一个例子 https://github.com/seanjreilly/httpServletExample不久前说明了基本技术。

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

如何在servlet中使用依赖注入? 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 推荐的 Android 音乐格式 - mp3、ogg 还是其他? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我被问到我的项目需要哪种格式的音乐 通过查看文档 Android 平台似乎提供了一个不错的选择 音频当然不是我的强项 所以我想知道是否有一种最适
  • 为什么 du 或 echo 流水线不起作用?

    我正在尝试对当前目录中的每个目录使用 du 命令 所以我尝试使用这样的代码 ls du sb 但它没有按预期工作 它仅输出当前 的大小目录仅此而已 echo 也是同样的情况 ls echo 输出空行 为什么会发生这种情况 使用管道发送输出
  • 如何在 Java 中创建 PKI

    我想创建存储在数据库中的证书 但我不知道如何做到这一点 如果退出 API 或库可以帮助我做到这一点 谢谢 公钥基础设施不仅仅是签名公钥的数据库 例如 PKI 最重要的部分之一是使用 OCSP 协议撤销证书的能力 简而言之 用 java 构建
  • 将曲线拟合到数据集

    我有一个包含两个数据集的图 它产生轻微的梯度 其中最佳拟合曲线可能会被过度绘制 目前我只能得到一条最适合的直线 我明白scipy optimize curve fit应该能够帮助我 但这需要我知道我想要过度绘制的函数 我认为 下面是我的代码
  • 如何以编程方式隐藏/禁用 Android 软键盘上的表情符号

    是否可以隐藏特定的键盘按钮 我有一个EditText在某些设备上 其键盘上有笑脸 而在其他设备上则没有 我想在所有设备上隐藏它 下面是我的 XMLEditText android id id text editor android layo
  • 我应该如何在我的 ApplicationController 中使用 Draper?

    我的问题涉及以下开发堆栈 轨道3 2 1 德雷珀 0 14 血统1 2 5 我想做的是将导航传递到我的布局 所以我在我的过滤器中定义了一个之前的过滤器ApplicationController class ApplicationContro
  • MySQL 8 创建新用户,密码不起作用

    我使用 MySQL 已经好几年了 创建新用户直到 MySQL 5 x 版本的命令如下 GRANT ALL PRIVILEGES ON TO username localhost IDENTIFIED BY password 最近我安装了 M
  • 如何设置 Spring Boot 来运行 HTTPS / HTTP 端口

    Spring Boot 有一些属性来配置 Web 端口和 SSL 设置 但是一旦设置了 SSL 证书 http 端口就会变成 https 端口 那么 如何让两个端口同时运行 例如 80 和 443 正如您所看到的 只有一个端口的属性 在本例
  • 将视图添加到constraintLayout,其约束类似于另一个子项

    I have a constraint layout alpha9 with views spread all over it and I have one particular ImageView that I need to repli
  • 如何使用 LINQ 获取用户之间的最新消息?

    我有一个表显示消息之间的关系 像这样 我想获取每个用户的最后一条消息 因此 例如 结果将是表中的 id 91 和 id 92 var messages await dbContext Messages Include x gt x User
  • 安装 MongoDB java 驱动程序

    我对 Java 和 MongoDB 世界都很陌生 我想使用 MongoDB 和 Java 我已经下载了 Java 版 MongoDB 驱动程序 这是一个 jar 文件 我的问题是如何使用这个 Jar 文件 我使用了这个命令 但出现错误 ja
  • 使用 javascript 链接下载 PhantomJS

    我正在尝试抓取以下网站 如果您单击表格右上角标题为 导出数据 的小按钮 则会运行 JavaScript 脚本 并且我的浏览器会下载 csv 格式的文件 我希望能够编写一个 PhantomJS 脚本来自动执行此操作 有任何想法吗 上面的按钮被
  • 如何在 Javascript 中删除“mouseup”事件监听器

    在这里 我拖动一个元素并放到另一个地方 如果我不使用事件侦听器 它会很好地工作 但如果我以这种格式使用它 它不会执行 放置 操作 此链接包含我的代码 带有事件监听器 访问http jsfiddle net vishwateja2000 wH
  • 在 iPad 版 SDK 3.2 中使用 MPMoviePlayerViewController

    我开发了一个 iPhone 应用程序 它运行 MPMoviePlayer 3 2 SDK 之前的版本 没有任何问题 我知道这是一个新手问题 但如何让电影在新的 MPMoviePlayerViewController 中播放 我只收到音频并希
  • 的开始/结束外观转换的调用不平衡

    当我模拟我的应用程序时 我遇到了这个问题 它不是错误或警告 但它出现在我的控制台中 以前有人遇到过这种情况吗 就我而言 当您非常快速地单击表格视图中的两个选项卡时 就会发生此错误 结果导致标题名称错误 后退按钮消失 有人提到 当你推送视图时
  • 让 ASP.MVC2/VS2010 应用程序在 IIS 7.5 中工作

    我最近下载了 VS2010 beta 2 并开始使用 ASP NET MVC2 最初的开发是使用 Casini 完成的 但现在我想从 IIS 7 5 运行该应用程序 我运行的是 Windows 7 我已经安装了 IIS6 元数据库兼容性 并
  • 使用 Python 通过 Binance API 进行交易时出现问题

    我试图在不使用外部库的情况下在美国版 Binance API 上进行交易 我可以使用 GET 请求成功获取价格并显示我的帐户余额urllib 第一个示例代码有效 我可以通过我的API KEY and SECRET KEY没有问题 这些值是私
  • 我什么时候应该关心 std::iostream::sentry?

    网上参考资料对目的的描述相当简短和模糊std iostream sentry 我什么时候应该关心这个小动物 如果只是为了内部使用 为什么要公开呢 每当您需要使用流提取或输出数据时 都会使用它 也就是说 每当你创建一个operator gt
  • 如何在 JavaFX 中设置选项卡名称大小

    我有这个简单的选项卡示例 primaryStage setTitle Tabs Test Group root new Group Scene scene new Scene root 600 500 Color WHITE TabPane
  • 如何在servlet中使用依赖注入?

    如何将对象注入到 servlet 中 我的意思是 我不能使用构造函数 DI 因为 servlet 是由 servlet 容器实例化的 而且我也没有看到为 servlet 实现基于 setter 的 DI 的好方法 我应该使用 servlet