1.spring mvc项目可以直接在controller里面注入request,response
@Autowired private HttpServletRequest request; @Autowired private HttpServletResponse response;
然后就突发奇想是否可以@Ahtowired注入其他bean,最后发现使用@Configuration @Bean这两个标签可以注入,不过idea会报错,但是不影响使用,代码如下:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @Configuration class RestConfig { @Bean @Primary public RestTemplate restTemplate(RestTemplateBuilder builder, ClientHttpRequestFactory factory) { return builder.requestFactory(factory).build(); } @Bean public ClientHttpRequestFactory httpComponentsClientHttpRequestFactory(CloseableHttpClient httpClient) { HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient); factory.setReadTimeout(5000); // ms factory.setConnectTimeout(15000);// ms return factory; } @Bean public CloseableHttpClient httpClient() { return HttpClientBuilder.create().build(); } }
在再controller里面使用@Autowired可以注入RestTemplate、ClientHttpRequestFactory、CloseableHttpClient了