屬性依賴注入

1.依賴注入方法

  手動裝配和自動裝配

2.手動裝配

2.1 基于xml裝配

2.1.1 構造方法

<!-- 構造方法注入<constructor-arg>name:參數名type:類型value:
-->
<bean id="user" class="g_xml.constructor.User"><constructor-arg name="id" type="java.lang.Integer" value="11"></constructor-arg><constructor-arg name="username" type="java.lang.String" value="張三"></constructor-arg><constructor-arg name="age" type="java.lang.Integer" value="10"></constructor-arg>
</bean>

?

2.1.2 setter方法

<bean id="addr" class="g_xml.setter.Address" ><property name="addr" value="上海浦東"></property><property name="tel" value="138234324"></property>
</bean>
<bean id="user" class="g_xml.setter.User"><property name="id" value="1"></property><property name="username" value="張三"></property><property name="age" value="12"></property><property name="homeAddr" ref="addr"></property><property name="companryAddr" ref="addr"></property>
</bean>

2.1.3 p命名空間

  對setter方法注入進行簡化,替換<property>為:

  但是需要加入schame命名空間

2.1.4 spEL

  對<property>進行了統一編程,所有的內容都是用value

<property name="" value="#{EL表達式}">

EL:

  #{123}

  #{"hello"}

  #{beanId} :另一個bean的引用

  #{beanId.propName}

  #{beanId.toString()}

  #{T(類).靜態方法|字段}

2.1.5 集合注入

?

<bean id="users" class="g_xml.collections.Users"><property name="strArr"><array><value>戰三</value><value>李四</value><value>王五</value></array></property><property name="list"><list><value>111</value><value>222</value><value>333</value></list></property><property name="set"><set><value>set1</value><value>set2</value><value>set3</value></set></property><property name="map"><map><entry key="key1" value="value1"></entry><entry key="key2" value="value2"></entry></map></property><property name="properties"><props><prop key="k1">value1</prop><prop key="k2">value2</prop></props></property>
</bean>

?

2.2 基于注解

?  注解就是一個類,使用@注解名稱,取代xml配置

2.2.1 @Component? == <bean id="" class="">

  ? @Component("id")

? 使用注解之前,必須添加命名空間,讓spring掃描帶有注解的Bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- bean definitions here 配置所需要創建的實例對象,放入spring容器中--><!--<bean id="userService" class="a_IoC.UserServiceImp"></bean>--><context:component-scan base-package="h_annotation"></context:component-scan>
</beans>

?

2.2.2 在web開發中,提供了三個Component衍生出的注解

@Repository? DAO層

@Service? ? ? ?Service層

@Controller? ?Web層

2.2.3 依賴注入? (可以給私有屬性注入,也可以給setter方法注入)

  普通值:@Value()

  引用值:

    方式1:按照類型注入-->@Autowired

    方式2:按照名稱注入 -->

        @Autowired

        @Qualifier("名稱")

    方式2:按照名稱注入 -->

      @Resource("名稱")?

?

轉載于:https://www.cnblogs.com/zhuxiang1633/p/8502711.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453365.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453365.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453365.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

windows下實現自己的第一個python腳本文件并.exe運行

前言 python可以做很多事情&#xff0c;比如知乎上的回答&#xff0c;每天來到公司都要打開AS&#xff0c; QQ和微信,為了省事決定用python寫一個簡單的腳本來實現。。腳本內容只有幾行,python的代碼真的好簡潔。。。 import os os.startfile("C:\Program Files (x86)\Ten…

C++中引用()基礎認識

對于習慣使用C進行開發的朋友們&#xff0c;在看到c中出現的&符號&#xff0c;可能會犯迷糊&#xff0c;因為在C語言中這個符號表示了取地址符&#xff0c;但是在C中它卻有著不同的用途&#xff0c;掌握C的&符號&#xff0c;是提高代碼執行效率和增強代碼質量的一個很好…

linux無法訪問443端口,linux – 為什么我無法在Ubuntu上ping端口443?

我通過iptables打開了端口443&#xff1a;pkts bytes target prot opt in out source destination45 2428 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/06 1009 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80141 10788 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:220 0 AC…

MediaWiki安裝配置(Linux)【轉】

閱讀目錄 2.1 本例子的安裝環境如下&#xff1a;轉自&#xff1a;http://blog.csdn.net/gao36951/article/details/43965527 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 目錄(?)[-] 1MediaWiki簡介 2MediaWiki安裝21 本例子的安裝環境如…

提高編程水平的一段必經之路,研讀官方文檔

剛才看了 論壇里 jinxfei 的十年總結&#xff08;14&#xff09;&#xff1a;從CS轉向BS, 說實話&#xff0c;大部分內容我沒有太仔細的看&#xff0c;不過如下的一段引起了我的注意&#xff1a; 真正讓我心里有底的&#xff0c;還是在看了官方文檔之后&#xff1a;http://str…

在Asp.net core返回PushStream

最近用asp.net core webapi實現了一個實時視頻流的推送功能&#xff0c;在Asp.net中&#xff0c;這個是通過PushStreamContent來實現的。 基于對asp.net core的知識&#xff0c;隨手寫了一個&#xff08;要求控制器繼承自Controller基類&#xff09; [HttpGet] public async Ta…

順序棧的代碼實現

棧是一種限定只在表尾進行插入或刪除操作的線性表&#xff0c;棧也是線性表。表頭稱為棧的底部,表尾稱為棧的頂部,表為空稱為空棧。 棧又稱為后進先出的線性表,棧也有兩種表示:順序棧與鏈式棧。順序棧是利用一組地址連續的存儲單元。依次存放從棧底到棧頂的數據元素。 #includ…

Linux5觀察doc目錄并截屏,linux截屏命令

linux系統我們有時需要用到截屏功能&#xff0c;下面由學習啦小編為大家整理了linux截屏命令的相關知識&#xff0c;希望對大家有幫助!linux截屏命令詳解import檢測&#xff1a;import --versionimprot安裝&#xff1a;sudo apt-get install importimport常用命令&#xff1a;1…

eclipse+tomcat開發web程序

環境&#xff1a;windows 7Eclipse Java EE IDE for Web Developerstomcat 7.02 插件&#xff1a;tomcatPluginV321.zip 一.配置Tomcat插件 我們創建一個myplugins文件夾用于存放插件&#xff0c;myplugins位于D:/Program Files/J2EE目錄下。eclipse安裝路徑為&#xff1a;D:/P…

LoadRunner參數包含逗號

loadrunner的參數以逗號區分&#xff0c; 如果參數本身包含逗號&#xff0c;則會報錯 使用","將逗號包起來即可&#xff0c;如下圖 轉載于:https://www.cnblogs.com/cherrysu/p/8507649.html

軟件創業見聞

今天應一位朋友的邀請&#xff0c;過去蹭了個飯吃&#xff0c;順便坐了一個下午在聊著。這位老哥是一家軟件公司的老板&#xff0c;原來是從硬件銷售轉型到做軟件這一塊。因為說到軟件這一塊&#xff0c;我就很想了解一下這位老哥對于2009年的大勢是怎么看的&#xff0c;在2009…

如何采用設置標志的方法來區分循環隊列的滿和空

設立一個標志位,比如說是flag 最開始時隊列為空,設flag0 當入隊的時候讓flag1 出隊的時候flag0 然后再加上判斷隊頭隊尾指針是否重合 重合,且flag0,則為空 重合且flag1,則為滿

linux內核定義的常用信號6,linux復習

(3)設定apache服務器的網頁根目錄&#xff1a;/home/htdocs(4)在此apache服務器上設定一個目錄/home/htdocs/inside,且此目錄只允許IP地址為192.168.1.5的主機訪問(5)定義apache服務器以獨立進程的方式運行2、某系統管理員需每天做一定的重復工作&#xff0c;請按照下列要求&am…

linux 腳本 整數 賦值,shell基礎!!熟悉編程規范與變量

一、SHELL規范SHELL簡單介紹Bash(/bin/bash)是目前大多數 Linux 版本采用的默認 Shell。Bash 的全稱為 Bourne Again Shell&#xff0c;是最受歡迎的開源軟件項目之一。SHELL腳本簡單的來說&#xff0c;就是將平時使用的各種 Linux 命令按順序保存到一個文本文件中&#xff0c;…

一維數組的定義方式

一維數組的定義方式 在C語言中使用數組必須先進行定義。 一維數組的定義方式為&#xff1a;類型說明符 數組名 [常量表達式];其中&#xff0c;類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括號中的常量表達式表示數據元素的個數&#xff…

UIButton或UILabel加個下劃線

UIButton ####Objective - C LXYHyperlinksButton.h interface LXYHyperlinksButton : UIButton {UIColor *lineColor; }-(void)setColor:(UIColor*)color; 復制代碼LXYHyperlinksButton.m #import "LXYHyperlinksButton.h"implementation LXYHyperlinksButton- (id)…

android studio發布項目到github

點擊file setting ,打開對話框&#xff0c;如下&#xff0c;判斷git是否安裝成功 選擇GitHub&#xff0c;填寫github地址及密碼 發布項目&#xff1a; 轉載于:https://www.cnblogs.com/haihai88/p/8514683.html

在不使用{}時,else執行到哪里結束

正常情況下,if-else語句使用{}.執行時也執行{}里面的所有語句&#xff0c;但是當語句比較簡單時&#xff0c; 可以不使用{},而直接在if或else的后面寫要執行的語句。 但是程序只會執行到if或else語句后的第一個“;”其余的程序不在if-else的程序范圍內。

6個變態的C語言寫的Hello World

下面的六個程序片段主要完成這些事情&#xff1a; 輸出Hello, World混亂C語言的源代碼 下面的所有程序都可以在GCC下編譯通過&#xff0c;只有最后一個需要動用C的編譯器g才能編程通過。 hello1.c #define _________ }#define ________ putchar#define _______ main#define …

linux系統pcb軟件下載,開源PCB設計軟件KiCad致力于下一個大版本的發布

KiCad仍然是PCB設計和其他功能的領先開源電子設計套件。KiCad在2018年取得了成功&#xff0c;System76甚至使用了該軟件作為與Thelio臺式計算機一起設計的子板PCB的一部分&#xff0c;但展望未來&#xff0c;開發人員仍在努力開發6.0版本。KiCad 6.0發布方式將采用重新設計的GT…