没有反射的春天

2023-12-30

是否有可能用其他依赖注入工具替代默认的 Spring 框架通过反射创建和管理对象的方式(这会更快,因为会避免反射),同时仍然保留 Spring 丰富的 API?

例如,我希望由 Dagger 2 或 Tiger 或 Feather 创建的 Bean 仍然能够与 Spring Data/Social/MVC 交互。

https://github.com/google/dagger https://github.com/google/dagger

https://github.com/google/tiger https://github.com/google/tiger

https://github.com/zsoltherpai/feather https://github.com/zsoltherpai/feather

我知道有人会说“当性能成为问题时就开始担心它”——好吧,我想说现在是时候开始担心它了。

在我的选择中,它将允许 Spring 拥抱 FaaS(函数即服务)。 FaaS jvm 将在服务其调用后关闭,因此您要么保持它运行(像常规服务器一样)并按毫秒付费,要么某些调用可能会延迟几秒钟(以启动所有内容)。

我发现了两个项目,它们试图在 FaaS 环境中使用 Spring 并解决这个问题,但在我的选择中,更容易消除尝试通过 hack 来克服它的问题(反射)。

https://github.com/markfisher/spring-cloud-function https://github.com/markfisher/spring-cloud-function

https://github.com/kennyk65/spring-cloud-serverless https://github.com/kennyk65/spring-cloud-serverless

或者,也许还有另一种我不知道的方法来解决这个问题并在 FaaS 中有效地使用 Spring?

相关问题:在 Amazon Lambda 上运行 Spring Boot https://stackoverflow.com/questions/43288216/running-spring-boot-on-amazon-lambda

我一直在尝试使用最小的 Spring Framework 应用程序(例如 3-5 个类),但仍然需要(有时)5-15 秒来处理第一个请求(下一个请求将在 50-100 毫秒内处理),因此最小化并不能真正起作用这个案例。


我也有同样的想法,正在尝试为 JVM 寻找一个 FaaS 友好的 DI 框架。由于没有什么可以打败 JVM 上的 Spring 生态系统,因此如果 Spring 具有无反射机制和编译时 DI,那就太好了。但我在这方面找不到太多东西。

米克罗特 https://micronaut.io解决了完全相同的问题并且看起来很有趣。它有一个用于 spring 注释的适配器层。 Micronaut 专为使用编译时 DI 更快地启动而构建。

当然,这对于较新的应用程序来说是有好处的,但对于具有大量现有 spring 代码库的大型应用程序来说则不然。

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

没有反射的春天 的相关文章

  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Spring 5.0.3 依赖问题

    升级到 spring 5 0 3 后我遇到以下问题 09 25 29 141 ERROR org jboss msc service fail ServerService Thread Pool 175 MSC000001 Failed t
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • 如何让“循环”泛型在 Java 中工作?

    我在编译以下涉及一些泛型的代码时遇到错误 public abstract class State
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 错误膨胀类 android.support.design.widget.NavigationView [启动时崩溃]

    该应用程序应该有一个导航抽屉 可以从左侧拉出并显示各种活动 但是一旦将导航栏添加到 XML Activity homescreen 文档中 应用程序一启动就会崩溃 主屏幕 java package com t99sdevelopment c
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • Java 8 方法签名不一致

    Java 8 为我们提供了具有很长签名的新方法 如下所示 static
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 使用 Swagger 的 Spring REST API 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以帮助我生成 RESTful API 文档的工具 我的服务器是用Java编写的并使用S
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • AngularJS:服务、提供商、工厂

    之间有什么区别Service Provider and Factory在 AngularJS 中 从我得到的 AngularJS 邮件列表一个惊人的线程 https groups google com forum msg angular 5

随机推荐

  • Rails:Capybara 无法使用 Devise 夹具数据登录用户

    我正在为我的应用程序编写集成测试 并尝试使用 Capybara 登录用户 当我创建一个User测试本身中的对象并输入该用户的详细信息 它通过并且用户已登录 但是当我尝试使用灯具的详细信息登录时 用户永远不会登录 正如可以在test log
  • VSCode:可以从多个模块访问该包

    我已经研究这个问题好几天了 看来所有答案都是特定于 Eclipse 的 我在 Visual Studio Code 上遇到此错误 The package javax xml bind annotation is accessible fro
  • C递归头文件包含问题?

    假设您必须在 2 个头文件中定义相关结构 如下所示 a h内容 include b h typedef struct A B b A b h内容 include a h typedef struct B A a B 在这种情况下 这种递归包
  • Swagger 中的重复参数输出

    更新 我开始怀疑这是否是由于错误造成的 https github com domaindrivendev Swashbuckle issues 590 https github com domaindrivendev Swashbuckle
  • 我可以用较小的配置文件来编写 Spring 配置文件吗?

    我有几个项目都使用一个项目作为数据模型 每个项目都有自己的 applicationContext xml 文件 其中包含一堆重复的数据内容 我想要一个 modelContext xml 文件和另一个用于我的 ui xml 等的文件 我可以这
  • 如何在iPhone应用程序中记录用户的所有触摸

    注意 这是对以下内容的扩展 和澄清 一个问题 https stackoverflow com questions 3918739 determining which view touch was in for all touches我昨天问
  • Git 使用与 bash 不同的 shell 作为别名

    我学习git有一段时间了 最 近我一直在使用别名 一切正常 直到上次 我的示例别名停止工作 git simple commit 工作正常 simple loop simpleLoop NAME 1 i 1 while i le 2 do g
  • 将项目添加到 Google Apps 脚本中的现有菜单

    如何在 Google Apps 脚本中将项目添加到现有菜单 在 Google 文档中 我可以创建一个new菜单并向其中添加一个项目 DocumentApp getUi createMenu MyMenu addItem Insert My
  • Android中的空进程是什么以及它有什么用?

    android中的空进程是什么以及它有什么用处 我有时在我的设备中看到空进程 它显示具有 0 个服务的进程 0 个活动意味着其中没有组件的进程 我还想知道作为开发人员 它是否有任何用处 或者只是在操作系统级别有用 android中什么是空进
  • 在c中嵌入python时Numpy导入失败

    我正在尝试将 python 程序嵌入到 c 代码中 我遇到的问题是使用包含 numpy 导入的 python 脚本 例如 如果我使用以下 C 代码 include
  • 通过 GUI 删除 Jenkins 构建

    如何从 Jenkins GUI 中删除构建 我知道我可以从 jobs 文件夹中删除该目录 但我想从 GUI 中执行此操作 是否也可以删除多个构建 如果您进入要删除的构建并且您有删除权限 那么您将在右上角看到一个按钮 删除此构建
  • 如何在主片段中单击按钮打开导航抽屉?

    我制作了一个具有一个活动的应用程序 它使用导航抽屉打开许多不同的片段 我有操作栏抽屉切换 但它不是很明显 如果我在主片段 应用程序首次启动时出现的片段 的 onCreateView 中放置一个按钮 如何让它打开由我的活动控制的导航抽屉 这似
  • webpack 在自定义加载器和插件之间共享数据

    解释 我正在开发一个 webpack 自定义加载器 它负责解析 javascript 并使用正则表达式搜索某些文本 我需要有一种方法来收集每个解析文件之间的数据 并最终将该数据传递给相关插件 以便该插件可以对该数据做出适当的操作 我失败的策
  • 将project_name/node_modules 作为符号链接?

    有关的 用于多个项目的单个 node modules 文件夹 https stackoverflow com q 28183860 663028 If npm install g不推荐一切 我不想链接各个模块 我可以符号链接吗
  • 如何在 Symfony 2 中缓存?

    我需要使用 Symfony 2 的缓存系统缓存一些应用程序特定的数据 以便我可以运行cache clear清除它 所有缓存依赖于app cache但我实际上如何缓存数据呢 http symfony com doc current cookb
  • 如何将文本文件的行结尾从 DOS 转换为 Unix?

    我将此 php 代码保存在文本文件中 我想将此文本文件转换为 Unix 行结尾 如何
  • Pandas DataFrame 中不同的组合值

    有没有一种简单的方法可以提取数据框中不同的值组合 我对单列使用了 pd Series unique 但是对于多列呢 示例数据 df pd DataFrame data 1 a 2 a 3 b 3 b 1 b 1 b columns numb
  • 提供 postgres Windows 系统复制权限(Windows 8)

    我正在寻找使用 pgadmin iii 复制 CSV 文件 对此非常陌生 当我从查询生成器运行 复制 命令时 出现以下错误 ERROR could not open file C Users Nick Documents CDR csv1
  • 玩!框架 2.0:使用其他字段验证表单中的字段

    剧中 框架 使用 scala 假设我有如下形式 import play api data import play api data Forms import play api data validation Constraints case
  • 没有反射的春天

    是否有可能用其他依赖注入工具替代默认的 Spring 框架通过反射创建和管理对象的方式 这会更快 因为会避免反射 同时仍然保留 Spring 丰富的 API 例如 我希望由 Dagger 2 或 Tiger 或 Feather 创建的 Be