Spring 四 Bean注入方試

2021-09-06 22:22:26 字數 4152 閱讀 3819

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

優缺點:

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

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

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

實體類:

package com.pb.entity;

/** * 班級類

* @author administrator

* */

public class grade

public grade(int id, string name) public int getid() public void setid(int id) public string getname() public void setname(string name) }

package com.pb.entity;

/** * 學生類

* @author administrator

* */

public class student

public student(string name, integer age, grade grade) public string getname() public void setname(string name) public integer getage() public void setage(integer age) public grade getgrade() public void setgrade(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用來指定型別 實體類 packagecom.pb.entity 班級類 author administrat...

Spring(四)使用註解注入Bean

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

spring 註解注入bean

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