Spring 四 Bean注入方試

2022-04-19 19:11:04 字數 4220 閱讀 4236

定義:通過建構函式來完成依賴關係的設定

優缺點:

在構造物件的同時,完成依賴關係的建立

如果關聯的物件很多,那和不得不在構造方法上加入過多的引數

基中有index:如果指定索引從0開始,type用來指定型別

實體類:

packagecom.pb.entity;

/** * 班級類

* @author administrator

* */

public classgrade

public grade(intid, string name)

public intgetid()

public void setid(intid)

publicstring getname()

public voidsetname(string name)

}

packagecom.pb.entity;

/** * 學生類

* @author administrator

* */

public classstudent

publicstudent(string name, integer age, grade grade)

publicstring getname()

public voidsetname(string name)

publicinteger getage()

public voidsetage(integer age)

publicgrade getgrade()

public voidsetgrade(grade grade)

}

使用構造方法注入

<?xml version="1.0" encoding="utf-8"?>

1001

計算應用一班

張三23

測試類:

package

com.pb.demo;

import

import

import

com.pb.entity.student;

public

class

demo1

}

其它不變只更改配置檔案

<?

xml version="1.0" encoding="utf-8"

?>

<

beans

xmlns

=""xmlns:xsi

=""xmlns:p

=""xsi:schemalocation

=" /spring-beans-3.1.xsd"

>

<

bean

id="grade"

class

="com.pb.entity.grade"

>

<

property

name

="id"

>

<

value

>1001

value

>

property

>

<

property

name

="name"

value

="計算機應用一班"

>

property

>

bean

>

<

bean

id="student"

class

="com.pb.entity.student"

>

<

property

name

="name"

value

="張三"

/>

<

property

name

="age"

value

="18"

/>

<

property

name

="grade"

ref="grade"

/>

bean

>

beans

>

表示空字串

表示為null值

class="com.pb.entity.student">

null>

官方推薦的注入方式

需要在xml上加入

xmlns:p=""

<?

xml version="1.0" encoding="utf-8"

?>

<

beans

xmlns

=""xmlns:xsi

=""xmlns:p

=""xsi:schemalocation

=" /spring-beans-3.1.xsd"

>

<

bean

id="grade"

class

="com.pb.entity.grade"

p:id

="1001"

p:name

="外語一班"

>

bean

>

<

bean

id="student"

class

="com.pb.entity.student"

p:name

="張三"

p:age

="23"

p:grade-ref

="grade"

>

bean

>

beans

>

效果一目了然

需要使用autowire屬性來配置

可以在每個bean中使用autowire來配置

也可以在中使用autowire全域性配置表示這個beans下的都使用自動裝配,

缺點:不清晰,有問題比較難以查詢

autowire:

no(預設值):不進行自動裝配,必須顯示指定依賴物件

byname: 根據屬性名自動裝配。自動查詢與屬性名相同的id,如果找到,則自動注入,否則什麼都不做

bytype:根據屬性的型別自動裝配,spring自動查詢與屬性型別相同的bean,如果剛好找到唯一的那個,則自動注入,如果找到多個與屬性型別相同的bean,則丟擲異常,如果沒有找到就什麼都不做。

constructor:和bytype類似,不過它針對構造方法,如果找到乙個bean和構造方法的引數型別相匹配,則通過構造注入該依賴物件,如果找不到,就丟擲異常

<?

xml version="1.0" encoding="utf-8"

?>

<

beans

xmlns

=""xmlns:xsi

=""xmlns:p

=""xsi:schemalocation

=" /spring-beans-3.1.xsd"

>

<

bean

id="grade"

class

="com.pb.entity.grade"

p:id

="1001"

p:name

="外語一班"

>

bean

>

<

bean

id="student"

class

="com.pb.entity.student"

p:name

="張三"

p:age

="23"

autowire

="byname"

>

bean

>

beans

>

自動裝配使得配置檔案可以非常簡潔,但同時也造成元件之間的依賴關係不明確,容易引發一些潛在的錯誤,謹慎使用

Spring 四 Bean注入方試

定義 通過建構函式來完成依賴關係的設定 優缺點 在構造物件的同時,完成依賴關係的建立 如果關聯的物件很多,那和不得不在構造方法上加入過多的引數 基中有index 如果指定索引從0開始,type用來指定型別 實體類 package com.pb.entity 班級類 author administra...

Spring(四)使用註解注入Bean

是 裡面的特殊標記,使用註解完成功能。註解寫法 註解名稱 屬性名 屬性值 註解可以作用在類 方法 屬性上面。在spring mvc中開啟註解掃瞄 在類 方法 屬性上新增註解即可。在類上,寫 scope註解來將類的建立方式修改為單例項或是多例項等 spring注入屬性 自動注入 autowired 手...

spring 註解注入bean

通過註解方式注入bean,需要在配置類下注入bean 第一步,配置掃瞄資料夾 首先要在spring.xml中配置需要掃瞄的配置類 base package com.kylin.config 第二步,新建註解配置類 configuration public class redisconfigurati...