您好,登錄后才能下訂單哦!
本篇內容主要講解“spring中的依賴注入的簡單介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“spring中的依賴注入的簡單介紹”吧!
spring中的依賴注入
IOC作用:降低程序間的耦合(依賴關系)
依賴關系的管理:交給spring來維護(在當前類需要用到其他類的對象,由spring為我們提供,我們只需要在配置文件中說明)
依賴關系的維護:依賴注入
依賴注入:
能注入的數據:
基本類型和String
其他bean類型(在配置文件中或者注解配置過的bean)
復雜類型/集合類型
bean對象 注入的方式:
使用構造函數
使用set函數
使用注解
使用構造函數
構造函數往入: |
使用的標簽:constructor- arg
標簽出現的位置: bean標簽的內部
標簽中的屬性
type:用于指定要注入的數據的數據類型,該數據類型也是構造函數中某個或某些參數的類型
index:用于指定要注入的數據給構造函數中指定索引位置的參數賦值。索引的位置是從e開始
name:用于指定給構造函數中指定名稱的參數賦值常用的
=========以上三個用于指定給構造函數中哪個參效賦值
value: 用于提供基本類型和String類型的數據
ref:用于指定其他的bean類型數據。它指的就是在spring的Ioc核心容器中出現過的
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("方法創建成功了");
}
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());
}
}
總結:
優勢:在獲取bean對象時,注入數據是必須的操作,否則對象無法創建成功。
弊端:改變了bean對象的實例化方式,使我們在創建對象時,如果用不到這些數據,也必須提供。
使用set函數鄭州引產手術費用多少錢 https://yiyuan.120ask.com/art/307587.html
涉及的標簽: property
出現的位置: bean標簽的內部
標簽的屬性
name:用于指定往入時所調用的set方法名稱
value: 用于提供基本類型和String類型的數據
ref:用于指定其他的bean類型數據。它指的就是在spring的Ioc核心容器中出現過的bean對象
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("方法創建成功了");
}
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=">
總結:
優勢:創建對象時沒有明確的限制,可以直接使用默認構造函數
弊端:如果有某個成員必須有值,則獲取對象是有可能set方法沒有執行。
到此,相信大家對“spring中的依賴注入的簡單介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。