[英]How avoid calling setApplicationContext on a SpringResourceTemplateResolver?
I'm currently setting up a Spring MVC project with Thymeleaf, following the tutorial at: http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#spring-mvc-configuration我目前正在使用 Thymeleaf 建立一个 Spring MVC 项目,遵循以下教程: http : //www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#spring-mvc-configuration
Trying to KISS the code, I first replaced implements ApplicationContextAware
and the setter method with @Inject private ApplicationContext applicationContext
.尝试 KISS 代码,我首先用
@Inject private ApplicationContext applicationContext
替换了implements ApplicationContextAware
和 setter 方法。 But I don't understand why I have to call setApplicationContext()
on the SpringResourceTemplateResolver
while it inherits the Spring interface ApplicationContextAware
.但我不明白为什么我要叫
setApplicationContext()
在SpringResourceTemplateResolver
同时它继承了Spring的接口ApplicationContextAware
。
How to avoid this?如何避免这种情况?
Edit: If I remove the templateResolver.setApplicationContext(applicationContext);
编辑:如果我删除
templateResolver.setApplicationContext(applicationContext);
line, I get this exception when accessing the root:行,我在访问根时遇到此异常:
java.lang.IllegalArgumentException: Application Context cannot be null
org.thymeleaf.util.Validate.notNull(Validate.java:37)
org.thymeleaf.spring4.templateresource.SpringResourceTemplateResource.<init>(SpringResourceTemplateResource.java:64)
org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver.computeTemplateResource(SpringResourceTemplateResolver.java:69)
org.thymeleaf.templateresolver.AbstractConfigurableTemplateResolver.computeTemplateResource(AbstractConfigurableTemplateResolver.java:1221)
org.thymeleaf.templateresolver.AbstractTemplateResolver.resolveTemplate(AbstractTemplateResolver.java:356)
org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:840)
org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:608)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1087)
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1061)
org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:189)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note: I use the latest versions: Spring 4.3.3.RELEASE and Thymeleaf 3.0.2.RELEASE (of course I imported thymeleaf-spring4
).注意:我使用最新版本:Spring 4.3.3.RELEASE 和 Thymeleaf 3.0.2.RELEASE(当然我导入了
thymeleaf-spring4
)。
重新检查我遗漏的内容后,似乎缺少@Configuration
注释是 Spring 没有将ApplicationContext
注入SpringResourceTemplateResolver
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.