1. 程式人生 > >SpringIOC容器建立物件及依賴注入的幾種方式

SpringIOC容器建立物件及依賴注入的幾種方式

Spring IOC容器
SpringIOC容器:是spring的核心內容
作用:建立物件,處理物件的依賴關係


IOC容器建立物件
幾種方式:
1、呼叫無參構造
<bean id="user" class="edu.cloud.spring.entity.User"></bean>
2、呼叫帶參構造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
3、工廠建立物件
工廠類:非靜態方法建立物件
<!-- 工廠類的例項 -->
<bean id="UserFactory" class="edu.cloud.spring.entity.UserFactory"></bean>
<!-- 使用例項方法建立物件 -->
<bean id="user4" factory-bean="UserFactory" factory-method="getInstance"></bean>
靜態方法建立物件
<!-- (靜態)方法建立物件 -->
<!-- class:指定工廠類型別 -->
<bean id="user5" class="edu.cloud.spring.entity.UserFactory" factory-method="getStaticInstance"></bean>




物件依賴關係
DI,依賴注入
1、通過構造
<bean id="user2" class="edu.cloud.spring.entity.User">
<constructor-arg value="tom" index="1"></constructor-arg>
<constructor-arg value="101" index="0"></constructor-arg>
</bean>
2、通過set方法對屬性注入【常用】
<bean id="user4" class="edu.cloud.spring.entity.User">
<property name="id" value="110"></property>
<property name="name" value="hhh"></property>
</bean>

<!-- 不用value了,用rel把這個物件引用進來 -->
<!-- 三層架構 依賴注入 -->
<!-- Action -->
<bean id="userAction" class="edu.cloud.second.UserAction">
<!-- property中的name指的是命名setter方法中的attribute部分:eg. setUserService() name為:userService -->
<property name="userService" ref="userService"></property>
</bean>

<!-- UserService -->
<bean id="userService" class="edu.cloud.second.UserService">
<!-- 不用value了,用rel把這個物件引用進來 -->
<property name="userDao" ref="userDao"></property>
</bean>

<!-- UserDao -->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>




<!-- 內部Bean -->
<bean id="userAction2" class="edu.cloud.second.UserAction">
<property name="userService">
<bean class="edu.cloud.second.UserService">
<property name="userDao">
<bean class="edu.cloud.second.UserDao"></bean>
</property>
</bean>
</property>
</bean>

3、P名稱空間,屬性注入優化
xml標頭檔案包含:xmlns:p="http://www.springframework.org/schema/p"

<!-- p:屬性注入 -->
<bean id="user" class="edu.cloud.second.User" p:id="999" p:name="Jack"></bean>


<!-- p:set方法注入 ref 引用-->
<bean id="userDao" class="edu.cloud.second.UserDao"></bean>
<bean id="userService" class="edu.cloud.second.UserService" p:userDao-ref="userDao"></bean>
<bean id="userAction2" class="edu.cloud.second.UserAction" p:userService-ref="userService"></bean>

相關推薦

SpringIOC容器建立物件依賴注入方式

Spring IOC容器SpringIOC容器:是spring的核心內容作用:建立物件,處理物件的依賴關係IOC容器建立物件幾種方式:1、呼叫無參構造<bean id="user" class="edu.cloud.spring.entity.User"><

Spring 依賴注入方式的實現,迴圈依賴問題的解決(原始碼+XML配置)

搬磚啦,搬磚啦,這幾天在看Spring相關的書,下面給大家分享一下這幾天的心得與收穫,Go Go Go! Spring支援兩種依賴注入方式,分別是屬性注入,建構函式注入。除此之外,Spring還支援工廠注入方式。 接下來,我們一起來了解一下Spring的幾種注入方式。

執行緒池的五狀態建立執行緒池的方式

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201025202321328.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZ

使用Myeclipse2014建立Maven專案有如下方式

1、建立Maven Java專案     1.1 選擇新建Maven專案 1.2、選擇建立簡單專案 1.3、填寫專案資訊 1.4、建立成功後項目目錄結構   1.5、建立後pom.xml檔案內容 1 <project xmlns="http

併發程式設計基礎——執行緒狀態,啟動停止的方式

前言 遙想當年大二,實習面試的時候,面試官一個問題:作業系統最小的排程單元是什麼?當時還沒學過作業系統,只知道程序的概念,於是乎信心滿滿的答道,當然是程序啊,然後......就沒有然後了。 之後再看這個問題,其實就是一個笑話。作業系統排程的最小單元其實是執行緒。現在想想當時,自己大二就敢

Json字串與Object物件相互轉換的方式

Json-Lib、Org.Json、Jackson、Gson、FastJson五種方式轉換json型別 只列舉了最省事的方式。不涉及複製情況和速度。 測試用例,一個User類,屬性name,age,location。重寫toString()。 public class User {

javascript 面向物件(實現繼承的方式)

 1、原型鏈繼承 核心: 將父類的例項作為子類的原型 缺點:  父類新增原型方法/原型屬性,子類都能訪問到,父類一變其它的都變了 function Person (name) { this.name =

物件序列化的方式的比較

定義一個待傳輸的物件UserVo: Java程式碼   public class UserVo{       private String name;       private int age;       private long phone;       private List<Us

Android Studio 新增依賴方式

1、庫依賴(library)  2、模組依賴(module)  以上兩種又可以分為內部和外部 a、內部庫  在工程的lib下直接貼上jar、aar檔案,androidstudio會自動載入指定目錄下的依賴庫。  即粘貼後,右鍵add as library。build.g

Spring 依賴注入方式

紙上得來終覺淺 1.構造器注入 AnimalDao: package com.roadArchitectWeb.dao; public interface AnimalDao { /*所有動物有一個說話的方法*/ public void say(); } CatDao

建立資料庫連線池的方式

方式一、在專案工程資料夾下配置DBCP建立資料庫連線池         步驟:                 1、導包。將DBCP相應的四個包匯入web資料夾下的WEB-INF資料夾下自己新建的lib資料夾裡,然後add as libriays。      

【Java8新特性】面試官問我:Java8中建立Stream流有哪方式

## 寫在前面 > 先說點題外話:不少讀者工作幾年後,仍然在使用Java7之前版本的方法,對於Java8版本的新特性,甚至是Java7的新特性幾乎沒有接觸過。真心想對這些讀者說:你真的需要了解下Java8甚至以後版本的新特性了。 ># > 今天,一名讀者出去面試,面試官問他:說說Java8

Spring容器建立物件方式及其區別

1. 通過類路徑下的配置檔案獲取ApplicationContext    //在建立容器的時候建立物件          特點:佔用記憶體,但效率高 ApplicationContext ac=new ClassPathXmlApplicationContext("cl

spring中IOC容器建立物件物件依賴關係處理

SpringIOC容器 1) 建立物件 SpringIOC容器,是spring核心內容。 作用: 建立物件 & 處理物件的依賴關係 IOC容器建立物件: 建立物件, 有幾種方式: 1) 呼叫無引數構造器 2) 帶引數構造器 3) 工廠建立物件 工廠類,靜態方法建立

深入研究Spring-IoC :容器建立方式

1.前言 本文為對tiny-spring的學習解讀,程式碼參考自tiny-spring。一個手寫的Spring簡易版框架。 前面已經提到了Spring IOC容器的建立大致分為3個步驟。但是這個三個步驟是有一個演進的過程的,Spring容器建立方式前後有6種,從最基本的例項化建立

在Spring中依賴注入方式實現鬆耦合

一、普通注入方式: (1)在IDEA工作空間內先建立lib包然後匯入Spring的架包(複製進去的架包要按住滑鼠右鍵出現Add as Library)。 (2)在已經建立好架包的基礎上在src目錄下建立XML檔案,檔案命為applicationContext.xml,需要注意的是我們建

Java建立物件方式

Java建立物件的幾種方式(重要): (1) 用new語句建立物件,這是最常見的建立物件的方法。 (2) 運用反射手段,呼叫java.lang.Class或者java.lang.reflect.Constructor類的newInstance()例項方法。 (3) 呼叫物件的clone()方法。 (4) 運用

.NET Core實戰專案之CMS 第三章 入門篇-原始碼解析配置檔案依賴注入

作者:依樂祝 原文連結:https://www.cnblogs.com/yilezhu/p/9998021.html 寫在前面 上篇文章我給大家講解了ASP.NET Core的概念及為什麼使用它,接著帶著你一步一步的配置了.NET Core的開發環境並建立了一個ASP.NET Core的mvc專

Asp.NetCore依賴注入和管道方式的異常處理日誌記錄

前言     在業務系統,異常處理是所有開發人員必須面對的問題,在一定程度上,異常處理的能力反映出開發者對業務的駕馭水平;本章將著重介紹如何在 WebApi 程式中對異常進行捕獲,然後利用 Nlog 元件進行記錄;同時,還將介紹兩種不同的 異常捕獲方式:管道捕獲/服務過濾;通過本練習,將學習到如何捕獲異常、

JavaScript高階程式設計學習筆記——建立物件方式

建立物件的幾種方式 工廠模式 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job =