Spring容器裝配Bean的三種方式


歡迎查看Java開發之上帝之眼系列教程,如果您正在為Java后端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那么本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(了解)Java體系。使Java的各種后端技術在你心中模塊化;讓你在工作中能將Java各個技術了然於心;能夠即插即用。本章我們來一起了解Spring專欄—SpringBean裝配。

 

本章我們一起來探討SpringBean的裝配,所謂 裝配“ 就是值將Bean安裝Bean容器中並進行依賴關系配置,稍微提一下IOC控制反轉就是指的安裝這一過程中,而DI依賴指的是配置這一過程。本章我們就Spring應用中如何進行裝配Bean進行講解;如自動化裝配Java配置裝配XML配置裝配方式進行介紹,但本章並不會介紹Spring項目全局配置方案,我們會在下一章中單獨介紹Spring基於Java的全局配置和基於XML的全局配置的兩種方案。本章提供三個完整源碼測試,Github源碼下載地址

Spring的三種裝配機制

  1. 隱式的Bean發現機制和自動裝配
  2. 在Java中進行裝配
  3. 在XML中進行裝配

值得一提的是,我們在項目中應該優先實用隱式的Bean發現機制和自動裝配其次使用在Java中進行裝配最后再使用在XML中進行裝配

隱式的Bean發現機制和自動裝配隱式Bean發現和自動裝配測試源碼

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 private Article article;

    public void action() {
        article.action();
    }
}
注意:示例中使@Component將Java類聲明成SpringBean,除了這一注解你還可以使用@Controller,@Service,@Repository等注解... 同樣@Autowired也可使用其他注解來代替,這里為了簡明介紹不再陳述。
 
基於Java的Bean裝配

同樣我們可以再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的Bean裝配基於XML裝配Bean完整源碼 

對於在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配置進行組合
這樣便於我們更方便的配置Spring項目,下一章我們會針對全局的Spring項目的配置進行介紹。

Java開發之上帝之眼系列教程其他文章


勘誤&感謝

  本系列文章資料來源很多出自於互聯網和在下本身的見解,受限於個人技術能力水平和其他相關知識的限制,相關見解錯誤或者資料引用錯誤請各位幫助留言校正!引用資料多來自於互聯網,在下在引用前會遵循各位前輩或者博主的引用說明表示感謝,但互聯網資料多是轉發再轉發或存在遺漏請原作者內信聯系指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM