当前位置: 首页 > 面试题库 >

创建一个Spring bean包含ServletRequest属性

太叔岳
2023-03-14
问题内容

我需要创建一个Spring
bean,使其门店serverNameserverPortcontextPath一个HttpServletRequest的对象的属性,这样,因为我需要我可以注入这个bean到其他豆类。

在我看来,这些属性不会随任何URI更改,因此最好将其初始化一次(无论如何,request多次传递实例根本不那么昂贵)。

问题是,如何将HttpServletRequest实例注入配置Bean?我更喜欢基于xml的注入。最可能的是,我们需要注入它作为一个<property>,但我不知道会是什么name或者ref这个ServletRequest对象。

目的是将这些变量保存在bean中,以便可以从任何bean中访问它们,并且request在需要获取serverName等内容时,不需要将对象作为参数传递给许多方法。

有什么想法如何创建这样的bean及其配置?


问题答案:

您可以使用请求范围的bean来完成此操作,并将当前请求自动装配到bean中:

public class RequestHolder {
   private @Autowired HttpServletRequest request;

   public String getServerName() {
      return request.getServerName();
   }
}

然后在XML中:

<bean id="requestHolder" class="com.x.RequestHolder" scope="request">
  <aop:scoped-proxy/>
</bean>

然后,您可以将requestHolderbean连接到您选择的任何业务逻辑bean中。

请注意<aop:scoped-proxy/>-这是将请求范围的Bean注入单例的最简单方法-
请参阅Spring文档以了解其工作方式以及如何配置aop名称空间。



 类似资料:
  • 我正在尝试创建一个jar文件,其中包含所有的依赖jar文件。Maven创建了一个单独的lib文件夹,并将所有的jar复制到其中,然后可执行jar就会工作,因为jar和lib位于同一位置,但我希望jar是主jar的一部分,而不是在lib文件夹中。我该怎么做?

  • 有没有办法在刷新Spring上下文后找出bean创建顺序(或至少依赖顺序)? 只要简单的bean定义顺序就可以了。我不想要他们注册的顺序。我想要创建它们的顺序(依赖关系树)

  • A package is a directory with some code and a package.json file that provides information to Yarn about your package. Most packages use some kind of version control system. The most common one is git

  • 有人知道怎么做吗?如有任何帮助,不胜感激 问候,

  • 问题内容: java中有没有一种方法可以用指定数量的指定字符创建字符串?就我而言,我需要创建一个包含10个空格的字符串。我当前的代码是: 有没有更好的方法来完成同一件事。特别是我想快速(在执行方面)。 问题答案: for循环将由编译器优化。在像您这样的情况下,您无需自己担心优化。信任编译器。 顺便说一句,如果有一种方法可以创建一个包含n个空格字符的字符串,那么它的编码方式就和您刚才一样。

  • 问题内容: 我正在尝试打开文件并创建一个列表,其中每行都从文件中读取。 但是由于这样说,这个示例代码给了我一个错误。我这是什么问题 我如何编写代码以增加InFile中每个新行的列表数? 问题答案: 比这容易得多: 这将返回文件中每一行的列表。