1. 程式人生 > >Spring的自動裝配Bean的四種方式

Spring的自動裝配Bean的四種方式

Spring提供了四種自動裝配的方式(Version 5.0.6.RELEASE),分別是:

  • no:(預設)無自動裝配。 Bean引用必須通過ref元素定義。
  • byName:自動按屬性名稱進行呼叫。Spring尋找一個與需要自動呼叫的屬性具有相同名稱的bean。
  • byType:匹配屬性型別進行裝配。如果屬性型別中的一個bean存在於容器中,則允許屬性自動進行。如果資料型別是相容的也會自動裝配。

  • constructor:根據構造方法的資料型別,進行byType模式的自動裝配。

使用自動裝配,需要在<bean>定義autowire屬性.

下面分別展示各種自動裝配的實現:

Student.java:

package com.du.test2;

/**
 * Created with IDEA
 *
 * @author duzhentong
 * @Date 2018/6/4
 * @Time 11:32
 */
public class Student {

    public void say() {
        System.out.println("Student say!");
    }
}

User.java:

package com.du.test2;

/**
 * Created with IDEA
 *
 * @author
duzhentong * @Date 2018/6/4 * @Time 10:54 */
public class User { private Student student; public User(Student student) { this.student = student; } public User() { } public void setStudent(Student student) { this.student = student; } public void say
() { student.say(); } }

Spring配置檔案spring2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="student" class="com.du.test2.Student"/>
    <!--根據屬性名字實現自動裝配 byName-->
    <bean id="user1" class="com.du.test2.User" autowire="byName"/>

    <!--根據屬性型別實現自動裝配 byType-->
    <bean id="user2" class="com.du.test2.User" autowire="byType"/>

    <!--根據構造方法現自動裝配-->
    <bean id="user3" class="com.du.test2.User" autowire="constructor"/>

    <bean id="user4" class="com.du.test2.User" autowire="no">
        <constructor-arg>
            <ref bean="student"/>
        </constructor-arg>
    </bean>

</beans>

測試類Application.java:

package com.du.test2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created with IDEA
 *
 * bean的自動裝配
 *
 * @author duzhentong
 * @Date 2018/6/4
 * @Time 10:58
 */
public class Application {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring2.xml");
        User user1 = (User)ac.getBean("user1");
        User user2 = (User)ac.getBean("user2");
        User user3 = (User)ac.getBean("user3");
        User user4 = (User)ac.getBean("user4");
        user1.say();
        user2.say();
        user3.say();
        user4.say();
    }
}

輸出:

Student say!
Student say!
Student say!
Student say

相關推薦

自動裝配的幾方式——Spring IOC/DI(

本章主要講解自動裝配的幾種方式,接上一章依賴注入的方式以及裝配屬性: https://blog.csdn.net/qq_34598667/article/details/83308071 自動裝配之自動裝配的幾種方式 Spring 容器可以在不使用< construc

Spring自動裝配Bean——xml方式與註解方式

自動裝配的概念 在Spring使用中,我們在xml配置檔案通過元素或元素的ref屬性向bean注入另外的依賴bean。 如果使用自動裝配(autowiring) ,就可以減少甚至消除配置元素和元素。 設定元素的autowire屬性就可以設定bean的自動裝配模式。自動裝配有5種模式。

Spring自動裝配的三方式

Sprring中Bean的自動裝配有3種方法:一、byName 二、byType 三、Constructor 第一步:配置我們的spring-autowriting.xml,我們先使用第一種方法ByName 第二步:建立3個類,一個測試類TestAutoWriting,一

Struts自動裝配放入Session作用域的方式

內容 實現 nbsp alt 相同 style etc 進行 request對象 ---恢復內容開始---         Struts三種自動裝配的方式 第一種在Action類中定義和表單name相同的成員變量。   首先你定義一個Action類   頁面:

Spring自動裝配Bean詳解

att spa bject 快速 個數 就會 否則 strong pro 1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiring ‘byType 4. Auto-Wirin

spring 自動裝配bean

no – 預設情況下,自動配置是通過“ref”屬性手動設定 <bean id="customer" class="com.yiibai.common.Customer" autowire=""> <property name="person" ref="person" />

jdbc Template 介紹和 spring 連結資料來源的方式

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

spring 4 配置 datasource 方式

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource  說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource"

Spring配置資料來源的方式(小結)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

Spring依賴注入的方式(重點是註解方式

在Spring容器中為一個bean配置依賴注入有三種方式: · 使用屬性的setter方法注入  這是最常用的方式; · 使用構造器注入; · 使用Filed注入(用於註解方式). 使用屬性的setter方法注入 首先要配置被注入的bean,在該bea

spring配置資料來源的方式

一、spring預設的     DriverManagerDataSource <bean id="dataSource" class="org.springframework.jdbc.d

Spring系列教程七: Spring 整合mybatis的方式

一、使用採用資料對映器(MapperFactoryBean)的方式註解實現整合mybatis 不用寫mybatis對映檔案,採

Spring自動裝配Bean方式

Spring提供了四種自動裝配的方式(Version 5.0.6.RELEASE),分別是: no:(預設)無自動裝配。 Bean引用必須通過ref元素定義。 byName:自動按屬性名稱進行呼叫。

Spring框架裝配Bean的三方式

歡迎檢視Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模組化;讓你在工作中能將Java各個技術瞭然

Java上帝之眼系列Spring框架裝配Bean的三方式

歡迎檢視Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在

Spring 獲取bean方式

讀取 獲取 static ava ade beans java ride .html 轉載自: http://www.cnblogs.com/luoluoshidafu/p/5659574.html 1.讀取xml文件的方式,這種在初學入門的時候比較適用 。     A

3.spring自動裝配/Bean之間的關係/作用域/外部檔案/spel/

1.自動裝配/手動裝配 xml配置檔案裡的bean自動裝配 Spring IOC 容器裡可以自動的裝配Bean,需要做的僅僅是在<bean>的autowire屬性裡面指定自動裝配模式 ->byType(根據型別自動進行裝配):若IOC容器裡需要有多個與目標Bean型別一樣的Bean,在這種

3.spring自動裝配/Bean之間的關系/作用域/外部文件/spel/

depends ... 完全 構造器 外部文件 conn wire odi host 1.自動裝配/手動裝配 xml配置文件裏的bean自動裝配 Spring IOC 容器裏可以自動的裝配Bean,需要做的僅僅是在<bean>的autowire屬性裏面指定自動裝

Spring學習(穀粒學院spring4課程)第五節 基於 @Autowired 自動裝配 Bean

1: @Autowired 的應用範圍  @Autowired 可以應用到構造器,欄位,含參函式上。 2:如何裝配 2.1 @Autowired 自動裝配具有相容型別的單個 Bean屬性,若該屬性非必須,可以設定required 屬性為 false 2.2若有多個be

Spring自動裝配Bean的屬性

Spring的最基本的能力就是DI,即依賴注入,或控制反轉,它可以為Bean注入其依賴的其他Bean。 一個Bean依賴其他Bean一般是通過在Bean中定義其他Bean的成員變數的方式來實現的,那麼,Spring的DI也就表現為給Bean的屬性自動注入值。 這一般分為以下其中情況。 1