作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
目前我需要spring bean的jsp 2.0标签使用这个代码:
ac = WebApplicationContextUtils.getWebApplicationContext( servletContext);
ac.getBeansOfType(MyRequestedClass.class);
我刚刚得到第一个匹配的 bean。
这段代码运行良好,但有一个不受欢迎的缺点,即我花了大约一半的页面渲染时间来查找 spring bean,因为每次调用标签时都会发生这种情况。我在想也许将 bean 放入应用程序范围或至少 session 范围。但真正处理这个问题的最聪明的方法是什么?
最佳答案
我的第一个想法是,你确定调用 spring 很昂贵吗?这些东西已经过大量优化,所以在尝试优化之前确保它确实是一个问题。
假设它是一个问题,那么一个替代方案是InternalResourceViewResolver
的exposeContextBeansAsAttributes
和exposedContextBeanNames
属性。您可以使用其中一种(但不能同时使用)将部分或全部 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/
我是一名优秀的程序员,十分优秀!