自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spring自動(dòng)裝配之不能偷懶

開發(fā) 后端
Spring之自動(dòng)裝配,所謂自動(dòng)裝配,從字面解讀,我想應(yīng)該不難理解吧。那究竟spring 自動(dòng)裝配有幾種裝配類型。那下面我們就介紹spring自動(dòng)裝配之不能偷懶——autowire="no",在接受之前我們先介紹自動(dòng)裝配總共包括幾種裝配方式。

Spring之自動(dòng)裝配,所謂自動(dòng)裝配,從字面解讀,我想應(yīng)該不難理解吧(當(dāng)然不是誘導(dǎo)讀者去咬文嚼字)。那究竟spring 自動(dòng)裝配有幾種裝配類型(我想大家最關(guān)注的應(yīng)該是我們什么時(shí)候可以“偷懶”反之什么時(shí)候又不能,我想開發(fā)者目的應(yīng)該也是為了簡(jiǎn)化程序員的工作)。那下面我們就介紹spring自動(dòng)裝配之不能偷懶——autowire="no",在接受之前我們先介紹自動(dòng)裝配總共包括幾種裝配方式(在其他裝配方式中就不在介紹了)。

在介紹之前,先簡(jiǎn)單的提一個(gè)問題(自動(dòng)裝配總共有幾種呢),答案(六種)也許與大家想的有點(diǎn)背離,但是我個(gè)人認(rèn)為并不是不無(wú)道理的。

1. default-autowire="那五種形式": 這種是在全局(即在跟標(biāo)簽里)定義的,如果局部定義了autowire 可想而知,當(dāng)然是按照局部的去進(jìn)行自動(dòng)裝配了,如果沒有定義就是按照跟標(biāo)簽的默認(rèn)定義去進(jìn)行裝配,所以在這里把它單獨(dú)拿出來(lái)作為一種

2. No:通過(guò)ref元素指定依賴

3. byName:在容器中尋找和需要自動(dòng)裝配的屬性名相同的Bean(或ID),如果沒有找到相符的Bean,該屬性就沒有被裝配上。

4. byType:在容器中尋找一個(gè)與需要自動(dòng)裝配的屬性類型相同的Bean;如果沒有找到相符的Bean,該屬性就沒有被裝配上,如果找到超過(guò)一個(gè)相符的Bean拋出異常org.springframework.beans.factory.UnsatisfiedDependencyException(特此聲明測(cè)試針對(duì)spring2.5.6,在spring3.0中檢查到多個(gè)Bean貌似沒有異常并且在3.0中沒有依賴檢查這個(gè)屬性)

5. Constructor:在容器中查找與需要自動(dòng)裝配的Bean的構(gòu)造方法參數(shù)一致的一個(gè)或者過(guò)個(gè)Bean,如果從在不確定的Bean或構(gòu)造方法,容器會(huì)拋出異常org.springframework.beans.factory.UnsatisfiedDependencyException.

6. Autodetect:首先我們嘗試使用constructor來(lái)自動(dòng)裝配,然后使用byType方式。不確定行的處理與constuctor和byType方式一樣

既然我們的題目叫不能偷懶,那當(dāng)然我們就要介紹no了

Java代碼

 

  1. //Longmanfei.xml  
  2.  
  3.  
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  6.  
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  8.  
  9. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. class="cn.csdn.service.GreetingServiceImpl" autowire="no">  
  17.  
  18.  
  19.  
  20.  
  21. //GreetingDaoImpl  
  22.  
  23. public class GreetingDaoImpl implements GreetingDao {  
  24.  
  25. private String say;  
  26.  
  27. public void say() {  
  28.  
  29. System.out.println("我打了這個(gè)招呼"+say);  
  30.  
  31. }  
  32.  
  33. public void setSay(String say) {  
  34.  
  35. this.say = say;  
  36.  
  37. }  
  38.  
  39. }  
  40.  
  41. //GreetingServiceImpl  
  42.  
  43. public class GreetingServiceImpl implements GreetingService{  
  44.  
  45. private GreetingDaoImpl greetingDaoImpl;  
  46.  
  47. public void say() {  
  48.  
  49. greetingDaoImpl.say();  
  50.  
  51. }  
  52.  
  53. public void setGreetingDaoImpl(GreetingDaoImpl gdi) {  
  54.  
  55. System.out.println("我調(diào)用了set方法");  
  56.  
  57. this.greetingDaoImpl = gdi;  
  58.  
  59. }  
  60.  
  61. public GreetingServiceImpl() {  
  62.  
  63. super();  
  64.  
  65. System.out.println("我調(diào)用了空的構(gòu)造器");  
  66.  
  67. }  
  68.  
  69. public GreetingServiceImpl(GreetingDaoImpl greetingDaoImpl) {  
  70.  
  71. super();  
  72.  
  73. System.out.println("我調(diào)用了有參的構(gòu)造器");  
  74.  
  75. this.greetingDaoImpl = greetingDaoImpl;  
  76.  
  77. }  
  78.  
  79. }  
  80.  
  81. //junit測(cè)試  
  82.  
  83. @Test 
  84.  
  85. public void test1(){  
  86.  
  87. /*加載spring容器可以解析多個(gè)配置文件采用數(shù)組方式傳遞*/ 
  88.  
  89. ApplicationContext  
  90.  
  91. ac=new ClassPathXmlApplicationContext("classpath:Longmanfei.xml");  
  92.  
  93. //直接轉(zhuǎn)換成接口便于日后修改數(shù)據(jù)/*Ioc控制反轉(zhuǎn)體現(xiàn)*/  
  94.  
  95. GreetingService  
  96.  
  97. gs=(GreetingService) ac.getBean("greetingServiceImpl");  
  98.  
  99. gs.say();  
  100.  
  101. }  

【編輯推薦】

  1. Java EE進(jìn)階之Spring事務(wù)深入淺出
  2. Spring事務(wù)管理高級(jí)應(yīng)用難點(diǎn)剖析
  3. Spring的Hibernate事務(wù)管理機(jī)制
  4. 簡(jiǎn)單介紹Spring事務(wù)管理
責(zé)任編輯:金賀 來(lái)源: ITEYE博客
相關(guān)推薦

2024-12-25 16:01:01

2025-02-05 12:28:44

2025-03-28 08:10:00

Spring自動(dòng)裝配Java

2009-11-24 09:01:21

Windows 7自動(dòng)播放

2022-08-08 07:33:11

自動(dòng)裝配Java容器

2015-03-18 10:16:57

程序員程序員如何偷懶

2024-04-26 08:46:42

Spring自動(dòng)裝配核心內(nèi)容

2023-11-01 09:07:01

Spring裝配源碼

2024-05-29 07:47:30

SpringJava@Resource

2024-10-10 12:12:45

SpringAI版本

2012-02-17 10:50:10

Java

2022-06-07 07:58:45

SpringSpring AOP

2009-06-18 11:15:53

裝配beanxml配置Spring

2023-09-28 09:17:18

SpringBootBean

2022-05-30 09:32:07

Spring容器

2022-09-16 09:13:27

代碼偷懶方法

2012-03-18 22:09:40

rhelkvm

2019-12-11 15:21:12

PythonExcel瀏覽器

2022-06-08 08:04:28

Springservicerepository

2017-09-11 09:44:24

機(jī)器學(xué)習(xí)自動(dòng)化AML
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)