Spring框架裝配Bean的三種方式
阿新 • • 發佈:2018-12-13
歡迎檢視Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模組化;讓你在工作中能將Java各個技術瞭然於心;能夠即插即用。本章我們來一起了解Spring專欄—SpringBean裝配。
本章我們一起來探討SpringBean的裝配,所謂 ”裝配“ 就是值將Bean安裝Bean容器中並進行依賴關係配置,稍微提一下IOC控制反轉就是指的安裝這一過程中,而DI依賴指的是配置這一過程。本章我們就Spring應用中如何進行裝配Bean進行講解;如自動化裝配
Spring的三種裝配機制
- 隱式的Bean發現機制和自動裝配
- 在Java中進行裝配
- 在XML中進行裝配
值得一提的是,我們在專案中應該優先實用隱式的Bean發現機制和自動裝配,其次使用在Java中進行裝配,最後再使用在XML中進行裝配。
Spring從兩個角度來實現自動化裝配;元件掃描(Spring自動發現應用中上下文所需要的建立的Bean),自動裝配(Spring自動滿足Bean之間的依賴)
- 使用@Component將普通Java類配置成SpringBean
- 使用@Autowired(自動裝配)使Spring滿足Bean的依賴
- 配置元件掃描包(元件掃描)
- 在Java類中配置元件掃描
@ComponentScan("com.jimisun.controller")
-
- 在XML配置檔案配置元件掃描
<context:component-scan base-package="com.jimisun.controller,com.jimisun.service"/>
@Component public class User { @Autowired注意:示例中使@Component將Java類宣告成SpringBean,除了這一註解你還可以使用@Controller,@Service,@Repository等註解... 同樣@Autowired也可使用其他註解來代替,這裡為了簡明介紹不再陳述。 基於Java的Bean裝配private Article article; public void action() { article.action(); } }
同樣我們可以再Spring的Java配置類中對SpringBean進行配置
- 使用 @Bean 註解將方法返回的例項物件新增到上下文中
- 在@Bean返回的例項物件中可以通過構造器注入傳入相關依賴
@Configuration @ComponentScan("com.jimisun") public class WebConfig { @Bean public User user() { return new User(myArticle()); } @Bean public MyArticle myArticle() { return new MyArticle(); } }注意:如果你沒有接觸過基於java配置Bean的裝配的話,不需要著急,這裡只需要你理解SpringBean裝配的全域性資訊,下章我們會更為詳細的介紹。 對於在XML中進行配置可能使我們經常使用的,在以前的Spring版本中幾乎我們都是使用XML進行配置Spring,下面我們簡單來看一下。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean class="com.jimisun.spring.example.User" id="user"> <constructor-arg ref="myArticle"/> </bean> <bean class="com.jimisun.spring.example.MyArticle" id="myArticle"></bean> </beans>注意:在實際應用中如何不想被海量的<bean>標籤埋沒前,你應當優先使用隱式的Bean發現機制和自動裝配和在Java中進行裝配,最後再選擇使用在XML中配置。 最後值得一提的是在實際專案中我們通常都會選擇組合使用
- 隱式的Bean發現機制和Java中進行裝配進行組合
- 隱式的Bean發現機制和XML配置進行組合