1. 程式人生 > >spring通過@Configuration @Bean注入Bean

spring通過@Configuration @Bean注入Bean

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了

相關推薦

spring通過@Configuration @Bean注入Bean

1.spring mvc專案可以直接在controller裡面注入request,response @Autowired private HttpServletRequest request; @Autowired private HttpServletResponse

Spring的《XML顯式裝配bean》之通過構造器注入Bean

本文主要講解兩點: 1.怎麼樣宣告一個bean 2.通過構造器注入bean 1. 怎麼樣宣告一個bean? 1) 建立一個類: package spring.ch1.topic5; public class Song {

Spring Boot通過ImportBeanDefinitionRegistrar動態注入Bean

在閱讀Spring Boot原始碼時,看到Spring Boot中大量使用ImportBeanDefinitionRegistrar來實現Bean的動態注入。它是Spring中一個強大的擴充套件介面。本篇文章來講講它相關使用。 Spring Boot中的使用 在Spring Boot 內建容器的相關自動配置中

spring抽象類中注入bean

在使用spring的時候,有時由於設計的需要,需要使用抽象類(比如模板方法模式),但在抽象類中實現方法是需要依賴其他的介面或類的方法,這時就需要對依賴的介面或類進行注入,需要注意以下內容: 在抽象類中需要注入(@autowire),在繼承了該抽象類的子類中同樣需要再次注入。比如當前專案中,使用者

Spring 通過FactoryBean來配置bean

Spring 通過FactoryBean來配置bean 標籤(空格分隔): Spring 除了之前全類名和工廠方法這兩種形式來配置bean之外,還可以使用FactoryBean的形式來配置bean。下面是一個例子: 首先先定義一個類,實現了actoryBean這個介面: p

Spring. 通過Java程式碼裝配bean

儘管在很多情況下通過元件掃描和自動裝配來實現 Spring 的自動化配置是更為推薦的方式,但有時候自動化配置的方案行不通,因此需要明確配置 Spring。比如說你想要將第三方庫中的元件裝配到你的應用中,在這種情況下,是沒辦法在它的類上新增 @Component 和 @Autowired 註解的,

Spring通過工廠方法配置Bean

前言: Spring配置Bean的方法有很多,這裡只介紹通過工廠方法配置Bean。 所謂工廠即含有批量的Bean,可根據傳入的引數條件返回對應的Bean例項。 工廠又分兩種: 靜態工廠通過靜態方

Spring 通過XML配置裝配Bean

使用XML裝配Bean需要定義對於的XML,需要引入對應的XML模式(XSD)檔案,這些檔案會定義配置Spring Bean的一些元素,簡單的配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.s

Spring Boot無法自動注入bean問題解決方案

前言:在使用Spring Boot+Mybatis時,寫完Mapper介面、Service、Controller後,啟動(圖1)打包專案(圖2)均失敗,提示無法自動注入bean。完成目標:1、無法自動注入bean錯誤資訊2、程式碼展示3、解決方案一、錯誤資訊:Descript

關於spring boot無法自動注入bean問題解決方案

. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_|

spring boot無法自動注入bean?原因在這兒

Description: Field helloSpringBootService in com.zd.hellospringboot.HelloController required a bean of type 'com.zd.service.HelloSpringBo

Spring--通過註解來配置bean

Spring通過註解配置bean   基於註解配置bean   基於註解來配置bean的屬性 在classpath中掃描元件   元件掃描(component scanning):Spring能夠從classpath下自動掃描,偵測和例項化具有特定註解的元件。   特定的元件包括:     [email&#

netty學習----spring整合netty無法注入bean的問題解決

作者在使用netty整合spring注入呼叫時普通的@Autowired一直bean注入為null,這裡我只是記錄針對netty注入spring無法注入bean的解決發放,具體底層實現,希望大神不吝賜教 首先上解決程式碼塊,copy過去就可以直接用 @Component

Spring在Thread中注入Bean無效的解決方式[嗡湯圓的小筆記]

在Spring專案中,有時需要新開執行緒完成一些複雜任務,而執行緒中可能需要注入一些服務。而通過Spring注入來管理和使用服務是較為合理的方式。但是若直接在Thread子類中通過註解方式注入Bean是無效的。 因為Spring本身預設Bean為單例模式構建,

解決Spring+Quartz無法自動注入bean問題

工作遇到的問題,使用Quartz定時任務,如果需要用到自動注入,會報空指標異常,看了原文博主的方法,只需要加上 SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this); 就能正常注

在servlet中使用spring註解@Autowired自動注入bean

一,使用@Autowired注入需要使用的bean。    @Autowired     private  InstitutionService institutionService;          @Autowired     private UserService

Springbean注入初始化方式—通過註解@Configuration @bean

雖然 2.0 版本釋出以來,Spring 陸續提供了十多個註解,但是提供的這些註解只是為了在某些情況下簡化 XML 的配置,並非要取代 XML 配置方式。這一點可以從 Spring IoC 容器的初始化類可以看出:ApplicationContext 介面的最常用的實現類是

Spring通過註解annotation方式注入Bean時,採用動態代理,那麼JDK代理和CGLIB代理區別?

切面程式設計是Spring中非常重要的一個模組,切面程式設計的實現原理是動態代理,那麼動態代理又有兩種實現方式:一種方法是直接實現JDK中的InvocationHandler介面,另一種方法是繼承CGLIB。 首先如果不是很清楚兩者的區別的話,記住一般情況下Invocati

通過Spring Bean 注入static變數,來設計一套適合測試,開發,生產環境的配置項

(http://blog.csdn.net/initphp/article/details/8834844) 這邊文章的目的主要是為了在spring開發web專案的時候,讓我們的測試,開發,生產環境的配置項 .properties作為配置檔案。 我們首先需要建

Spring通過註解來配置bean以及自動注入

今天看到一篇好文章,寫的很是詳細。再加上自己的理解和補充,成了這一篇文章。文後會獻上原文連結。 使用Spring經常性的需要: 通過註解配置bean   基於註解配置bean   基於註解來配置bean的屬性    ----------------------