注释 Spring 视图类
Posted
技术标签:
【中文标题】注释 Spring 视图类【英文标题】:Annotating Spring view class 【发布时间】:2013-01-22 21:39:27 【问题描述】:我有一个类扩展了 Spring 的 AbstractExcelView 类,它呈现一个 XML 文件。在这个类中,我正在注入我的 Service bean 以供使用。我正在自动装配和组件扫描我的类,我也想对这个视图类做同样的事情,但我不清楚如何(或者是否可以这样做)。这是我试图从配置中注释的内容:
<bean id="export.xls" class="com.my.views.ReportExcelView">
<property name="url">
<value>/excel/template</value>
</property>
<property name="service" ref="testingService"/>
我可以用@Component 注释类,用@Autowired 注释服务,但我不知道注释URL 的策略。我真正想做的是在 buildExcelWorkbook() 调用中调整它(基于请求中的某些内容),但似乎在此之前完成了一些初始化,因为我在尝试使用我的 excel 模板时遇到错误表示它没有 Excel 工作表句柄的方法。有什么建议吗?
【问题讨论】:
【参考方案1】:所以您的 ReportExcelView 现在可能看起来像这样。确保使用@Resource 连接一个简单的字符串。
package com.ex.springbasicex.view;
@Component
public class ReportExcelView
@Resource(name="myUrl")
String url;
@Autowired
Service service;
public String getUrl()
return url;
public void setUrl(String url)
this.url = url;
您的上下文配置可能应该类似于下面使用扫描的内容。下面是如何设置 myUrl String 资源。
<context:component-scan base-package="com.ex.springbasicex.view" />
<bean id="myUrl" class="java.lang.String" >
<constructor-arg>
<value>/excel/template</value>
</constructor-arg>
</bean>
【讨论】:
由于字符串 url 实际上在基类上,我只是用 @Resource 注释了 setUrl 并且它起作用了。以上是关于注释 Spring 视图类的主要内容,如果未能解决你的问题,请参考以下文章
Spring - 使用@Service和@Repository注释同一个类
使用 DirtiesContext 注释重新加载 Spring 应用程序不适用于嵌套类
我是不是需要使用 Kotlin Junit5 和 Spring Boot 将 Spring 注释复制到内部类?