您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“spring中的依賴注入的簡(jiǎn)單介紹”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“spring中的依賴注入的簡(jiǎn)單介紹”吧!
spring中的依賴注入
IOC作用:降低程序間的耦合(依賴關(guān)系)
依賴關(guān)系的管理:交給spring來(lái)維護(hù)(在當(dāng)前類(lèi)需要用到其他類(lèi)的對(duì)象,由spring為我們提供,我們只需要在配置文件中說(shuō)明)
依賴關(guān)系的維護(hù):依賴注入
依賴注入:
能注入的數(shù)據(jù):
基本類(lèi)型和String
其他bean類(lèi)型(在配置文件中或者注解配置過(guò)的bean)
復(fù)雜類(lèi)型/集合類(lèi)型
bean對(duì)象 注入的方式:
使用構(gòu)造函數(shù)
使用set函數(shù)
使用注解
使用構(gòu)造函數(shù)
構(gòu)造函數(shù)往入: |
使用的標(biāo)簽:constructor- arg
標(biāo)簽出現(xiàn)的位置: bean標(biāo)簽的內(nèi)部
標(biāo)簽中的屬性
type:用于指定要注入的數(shù)據(jù)的數(shù)據(jù)類(lèi)型,該數(shù)據(jù)類(lèi)型也是構(gòu)造函數(shù)中某個(gè)或某些參數(shù)的類(lèi)型
index:用于指定要注入的數(shù)據(jù)給構(gòu)造函數(shù)中指定索引位置的參數(shù)賦值。索引的位置是從e開(kāi)始
name:用于指定給構(gòu)造函數(shù)中指定名稱的參數(shù)賦值常用的
=========以上三個(gè)用于指定給構(gòu)造函數(shù)中哪個(gè)參效賦值
value: 用于提供基本類(lèi)型和String類(lèi)型的數(shù)據(jù)
ref:用于指定其他的bean類(lèi)型數(shù)據(jù)。它指的就是在spring的Ioc核心容器中出現(xiàn)過(guò)的
xmlns:xsi="
xsi:schemaLocation="
package com.ay.service;
public interface AccountService {
public void saveAccount();
}
package com.ay.service.impl;
import com.ay.service.AccountService;
import java.util.Date;
public class AccountServiceImpl implements AccountService {
private String name;
private Integer age;
private Date birthday;
@Override
public void saveAccount() {
System.out.println("方法創(chuàng)建成功了");
}
public AccountServiceImpl(String name, Integer age, Date birthday) {
this.name = name;
this.age = age;
this.birthday = birthday;
}
@Override
public String toString() {
return "AccountServiceImpl{" +
"name='" + name + '\'' +
", age=" + age +
", birthday=" + birthday +
'}';
}
}
package com.ay.ui;
import com.ay.service.AccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
AccountService as = (AccountService)ac.getBean("accountService");
as.saveAccount();
System.out.println(as.toString());
}
}
總結(jié):
優(yōu)勢(shì):在獲取bean對(duì)象時(shí),注入數(shù)據(jù)是必須的操作,否則對(duì)象無(wú)法創(chuàng)建成功。
弊端:改變了bean對(duì)象的實(shí)例化方式,使我們?cè)趧?chuàng)建對(duì)象時(shí),如果用不到這些數(shù)據(jù),也必須提供。
使用set函數(shù)鄭州引產(chǎn)手術(shù)費(fèi)用多少錢(qián) https://yiyuan.120ask.com/art/307587.html
涉及的標(biāo)簽: property
出現(xiàn)的位置: bean標(biāo)簽的內(nèi)部
標(biāo)簽的屬性
name:用于指定往入時(shí)所調(diào)用的set方法名稱
value: 用于提供基本類(lèi)型和String類(lèi)型的數(shù)據(jù)
ref:用于指定其他的bean類(lèi)型數(shù)據(jù)。它指的就是在spring的Ioc核心容器中出現(xiàn)過(guò)的bean對(duì)象
package com.ay.service;
public interface AccountService {
public void saveAccount();
}
package com.ay.service.impl;
import com.ay.service.AccountService;
import java.util.Date;
public class AccountServiceImpl implements AccountService {
private String name;
private Integer age;
private Date birthday;
@Override
public void saveAccount() {
System.out.println("方法創(chuàng)建成功了");
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "AccountServiceImpl{" +
"name='" + name + '\'' +
", age=" + age +
", birthday=" + birthday +
'}';
}
}
package com.ay.ui;
import com.ay.service.AccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
AccountService as = (AccountService)ac.getBean("accountService");
as.saveAccount();
System.out.println(as.toString());
}
}
xmlns:xsi=
xsi:schemaLocation=">
總結(jié):
優(yōu)勢(shì):創(chuàng)建對(duì)象時(shí)沒(méi)有明確的限制,可以直接使用默認(rèn)構(gòu)造函數(shù)
弊端:如果有某個(gè)成員必須有值,則獲取對(duì)象是有可能set方法沒(méi)有執(zhí)行。
到此,相信大家對(duì)“spring中的依賴注入的簡(jiǎn)單介紹”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。