我想把我的spring web应用程序替换成使用spring boot的版本,并拥有不同于常规的web-app目录。(src/main/webapp->src/main/其他名称)
Before:它具有默认servlet的servlet上下文配置。
<annotation-driven>
<message-converters>
<beans:bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<beans:property name="objectMapper">
<beans:bean class="com.knappsack.swagger4springweb.util.ScalaObjectMapper"/>
</beans:property>
</beans:bean>
</message-converters>
</annotation-driven>
<default-servlet-handler/>
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
public class MyEmbeddedServletContainerCustomizer implements
EmbeddedServletContainerCustomizer {
private static final Logger LOG =
LoggerFactory.getLogger(MyEmbeddedServletContainerCustomizer.class);
@Value("${servlet.container.maxThreads}")
private int MAX_THREADS;
@Override
public void customize(ConfigurableEmbeddedServletContainer factory) {
if(factory instanceof TomcatEmbeddedServletContainerFactory) {
customizeTomcat((TomcatEmbeddedServletContainerFactory) factory);
}
}
public void customizeTomcat(TomcatEmbeddedServletContainerFactory factory) {
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Object defaultMaxThreads = connector.getAttribute("maxThreads");
connector.setAttribute("maxThreads", MAX_THREADS);
LOG.info("Changed Tomcat connector maxThreads from " +
defaultMaxThreads + " to " + MAX_THREADS);
}
});
}
}
if (!registry.hasMappingForPattern("/resources/swagger-ui/**")) {
registry.addResourceHandler("src/main/webapp/resources/swagger-ui/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
}
}
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
我像下面这样解决。
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2HttpMessageConverter());
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
有人能帮我一下吗? 我需要将Java8LocalDate转换为JSON,反之亦然,在我的REST应用程序中,我将调用REST API的MVC应用程序。由于默认JacksonJAXbJSONProvider不解析LOcalDate,所以我编写了如下所示的自定义映射器,并在pom.xml中添加了依赖项 } 这是在Java 8 LocalDate Jackson格式中提出的 我需要将它传递给spring
我正在使用JmsTemplate转换和发送事件对象。我已经向JmsTemplate注册了MappingJackson2MessageConverter。 我正在使用并从该主题获取消息。我不知道如何将此消息转换回我的对象? JmsTemplate的messageconverter是 我尝试调用并传递此消息对象进行转换,但没有成功。如何将我收到的消息对象转换为我想要的自定义对象?
使用MVC Java编程配置方式时,如果你想替换Spring MVC提供的默认转换器,完全定制自己的HttpMessageConverter,这可以通过覆写configureMessageConverters()方法来实现。如果你只是想定制一下,或者想在默认转换器之外再添加其他的转换器,那么可以通过覆写extendMessageConverters()方法来实现。 下面是一段例子,它使用定制的Ob
我有一个使用STOMP的SockJSJava客户端。基于此,https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/src/test/java/org/springframework/samples/portfolio/web/load/StompWebSocketLoadTestClient.java. 我的代码
我在使用spring-jms模块转换来自RabbitMQ的消息时遇到了一些问题。以前,我使用Rest APIendpoint发送消息,该endpoint将消息发送到RabbitMQ队列,并使用@JMSListener方法处理它。 在内部,这种行为添加了一个字段来确定Java类型,由Spring库管理。但是,现在我想避免Rest API调用,因为它不是必需的,而且我可以直接将消息发送到RabbitM
我有一条路由(Camel 2.17.3),它使用丰富的 DSL 调用Rest服务并将结果聚合到消息正文中。不过,我遇到了序列化问题。这是我正在尝试的。我的路线如下所示: 正如您所看到的,我想使用enrich()DSL调用一些现有服务,并将这些结果聚合起来,形成一个新的消息体,以便进一步处理。我需要将rest调用的结果从Json转换为MyResponse。我想用这个: 但我需要它已经在我的Aggre