Spring容器裝配Bean的三種方式

歡迎查看Java開發之上帝之眼系列教程,若是您正在爲Java後端龐大的體系所困擾,若是您正在爲各類繁出不窮的技術和各類框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程但願您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各類後端技術在你心中模塊化;讓你在工做中能將Java各個技術瞭然於心;可以即插即用。本章咱們來一塊兒瞭解Spring專欄—SpringBean裝配。html

 

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

Spring的三種裝配機制

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

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

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

Spring從兩個角度來實現自動化裝配;組件掃描(Spring自動發現應用中上下文所須要的建立的Bean),自動裝配(Spring自動知足Bean之間的依賴)github

  • 使用@Component將普通Java類配置成SpringBean
  • 使用@Autowired(自動裝配)使Spring知足Bean的依賴
  • 配置組件掃描包(組件掃描)
    • 在Java類中配置組件掃描

@ComponentScan("com.jimisun.controller")spring

    • 在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開發之上帝之眼系列教程其餘文章


勘誤&感謝

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

相關文章
相關標籤/搜索