gpt4 book ai didi

java - 如何将 spring bean 注入(inject) jsp 2.0 SimpleTag?

转载 作者:IT老高 更新时间:2023-10-28 13:56:19 25 4
gpt4 key购买 nike

目前我需要spring bean的jsp 2.0标签使用这个代码:

ac = WebApplicationContextUtils.getWebApplicationContext( servletContext);
ac.getBeansOfType(MyRequestedClass.class);

我刚刚得到第一个匹配的 bean。

这段代码运行良好,但有一个不受欢迎的缺点,即我花了大约一半的页面渲染时间来查找 spring bean,因为每次调用标签时都会发生这种情况。我在想也许将 bean 放入应用程序范围或至少 session 范围。但真正处理这个问题的最聪明的方法是什么?

最佳答案

我的第一个想法是,你确定调用 spring 很昂贵吗?这些东西已经过大量优化,所以在尝试优化之前确保它确实是一个问题。

假设它一个问题,那么一个替代方案是InternalResourceViewResolverexposeContextBeansAsAttributesexposedContextBeanNames属性。您可以使用其中一种(但不能同时使用)将部分或全部 bean 公开为 JSP 属性。

这增加了将 Spring bean 实际注入(inject)标记类的可能性。例如,在您的 Spring 上下文中,您可以拥有:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="exposeContextBeansAsAttributes" value="true"/>
</bean>

<bean id="myBean" class="com.x.MyClass"/>

您的 JSP:

<MyTag thing="${myBean}"/>

如果 MyTag 定义了 MyClass 类型的属性 thing,则 myBean spring bean 应该被注入(inject)为一个普通的 JSP 属性。

关于java - 如何将 spring bean 注入(inject) jsp 2.0 SimpleTag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com