Java 如何使用Spring@Configuration引用一个不存在的bean
我不喜欢XML配置(那些大而不可读的文件),我更喜欢使用java代码而不是它们。我正在使用Spring(Core,MVC)和Thymeleaf作为模板引擎的一个简单web项目 下面是代码片段Java 如何使用Spring@Configuration引用一个不存在的bean,java,spring,spring-mvc,thymeleaf,Java,Spring,Spring Mvc,Thymeleaf,我不喜欢XML配置(那些大而不可读的文件),我更喜欢使用java代码而不是它们。我正在使用Spring(Core,MVC)和Thymeleaf作为模板引擎的一个简单web项目 下面是代码片段 @EnableWebMvc @Configuration @ComponentScan({"com.github.tobilko"}) public class DependencyConfiguration { @Bean(name = "templateResolver") publi
@EnableWebMvc
@Configuration
@ComponentScan({"com.github.tobilko"})
public class DependencyConfiguration {
@Bean(name = "templateResolver")
public ServletContextTemplateResolver getTemplateResolver() {
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("/WEB-INF/templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
return resolver;
}
@Bean(name = "templateEngine")
public SpringTemplateEngine getTemplateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(/*?*/);
return engine;
}
}
我对一个我称之为/*?*/
的地方感兴趣。我想参考templateResolver
bean。我需要在这里粘贴什么?如何引用一个不存在的bean
XML文件中的bean配置示例:
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
</bean>
<bean id="templateEngine"
class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
抛出java.lang.IllegalStateException
:
上下文尚未刷新
使用以下命令:
public SpringTemplateEngine getTemplateEngine(ServletContextTemplateResolver templateResolver) {
您可以将定义的Bean注入到用
@Bean
注释的方法中,或者您可以在getTemplateEngine()
内部调用getTemplateResolver()
,这是一个非常简单的解决方案,为什么我没有立即找到它呢?多谢各位
public SpringTemplateEngine getTemplateEngine(ServletContextTemplateResolver templateResolver) {