java - 网络配置 : use @bean or method way?

标签 java spring

我知道我可以这样在 webConfig 类中编写:

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();

    viewResolver.setPrefix("/WEB-INF/pages/");
    viewResolver.setSuffix(".jsp");

    registry.viewResolver(viewResolver);
}

但同时 - 我可以用另一种方式写:

 @Bean(name = "viewResolver")
public ViewResolver getViewResolver() {
    InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();

    viewResolver.setPrefix("/WEB-INF/pages/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
}

哪种方式更好?

为什么我不能为 freemarker 做第一种方法,但可以做第二种:

正确的是:

@Bean(name = "viewResolver")
public ViewResolver getViewResolver() {
    FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver();
    viewResolver.setPrefix("");
    viewResolver.setSuffix(".ftl");
    return viewResolver;
}


@Bean(name = "freemarkerConfig")
public FreeMarkerConfigurer getFreemarkerConfig() {
    FreeMarkerConfigurer config = new FreeMarkerConfigurer();
    config.setTemplateLoaderPath("/WEB-INF/pages/");
    return config;
}

我无法编写方法,因为我不知道 FreeMarkerConfigurer 和 FreeMarkerViewResolver 如何交互...

最佳答案

基本上,您的第二种用法不是您应该如何使用ViewResolverRegistry,它有一些方法可以让生活更轻松,例如jspfreeMarker,其中你应该使用。

所以正确的使用是

Override
public void configureViewResolvers(ViewResolverRegistry registry) {
  registry.jsp("/WEB-INF/pages/", ".jsp");

}

对于 FreeMarker

public void configureViewResolvers(ViewResolverRegistry registry) {
  registry.freeMarker(); 

}

@Bean
public FreeMarkerConfigurer freemarkerConfig() {
    FreeMarkerConfigurer config = new FreeMarkerConfigurer();
    config.setTemplateLoaderPath("/WEB-INF/pages/");
    return config;
}

您仍然需要 FreeMarkerConfigurer 来引导和配置 FreeMarker。

关于java - 网络配置 : use @bean or method way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62135198/

相关文章:

c# - 多态性的类型。超过一个?

java - 使用JDK 1.7编译Android项目

java - Stacktrace 的异常仅包含 Java 库调用

java - Spring @Transactional 不回滚

java - Spring MVC 中的日期

java - Spring-boot登录成功后如何限制POST Rest Api公开访问

java - Spring Boot 提供被安全阻止的静态内容

java - 如何使用Spring Boot连接h2数据库?

java - 验证 Mongo DB 时出现异常

java - 在 Spring MVC 中选择性地绑定(bind)属性