欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring 3.x中三種Bean配置方式比較詳解

 更新時間:2017年12月28日 08:37:51   作者:iloveyin  
這篇文章主要介紹了Spring 3.x中三種Bean配置方式比較詳解,具有一定借鑒價值,需要的朋友可以參考下

以前Java框架基本都采用了XML作為配置文件,但是現在Java框架又不約而同地支持基于Annotation的“零配置”來代替XML配置文件,Struts2、Hibernate、Spring都開始使用Annotation來代替XML配置文件了;而在Spring3.x提供了三種選擇,分別是:基于XML的配置、基于注解的配置和基于Java類的配置。

下面分別介紹下這三種配置方式;首先定義一個用于舉例的JavaBean。

package com.chinalife.dao  
public class LoginUserDao {
	……  
	  // 用于設置初始化方法  
	public void myInit() {
	}
	// 用于設置銷毀方法  
	public void myDestroy() {
	}
}

一、 基于XML的配置

<bean id=“l(fā)oginUserDao” class=“com.chinalife.dao.impl.LoginUserDaoImpl” 
    lazy-init=“true” init-method=“myInit” destroy-method=“myDestroy” 
    scope=“prototype”> 
    ……  
</bean> 

在XML配置中,通過<bean></bean>來定義Bean,通過id或name屬性定義Bean的名稱,如果未指定id和name屬性,Spring則自動將全限定類名作為Bean的名稱。通過<property>子元素或者p命名空間的動態(tài)屬性為Bean注入值。還可以通過<bean>的init-method和destory-method屬性指定Bean實現類的方法名來設置生命過程方法(最多指定一個初始化方法和銷毀方法)。通過<bean>的scope指定Bean的作用范圍。聽過<bean>的lazy-init屬性指定是否延遲初始化。

當Bean的實現類來源于第三方類庫,比如DataSource、HibernateTemplate等,無法在類中標注注解信息,只能通過XML進行配置;而且命名空間的配置,比如aop、context等,也只能采用基于XML的配置。

二、基于注解的配置

@Scope(“prototype”)  
@Lazy(true)  
@Component(“l(fā)oginUserDao”)  
public class LoginUserDao {  
  ……  
  // 用于設置初始化方法  
  @PostConstruct 
  public void myInit() {  
 
  }  
 
  // 用于設置銷毀方法  
  @PreDestroy 
  public void myDestroy() {  
  }  
}  

在Bean實現類中通過一些Annotation來標注Bean類:

·@Component:標注一個普通的SpringBean類(可以指定Bean名稱,未指定時默認為小寫字母開頭的類名)

·@Controller:標注一個控制器類

·@Service:標注一個業(yè)務邏輯類

·@Repository:標注一個DAO類

通過在成員變量或者方法入參處標注@Autowired按類型匹配注入,也可以使用@Qualifier按名稱配置注入。通過在方法上標注@PostConstrut和PreDestroy注解指定的初始化方法和銷毀方法(可以定義任意多個)。通過@Scope(“prototype”)指定Bean的作用范圍。通過在類定義處標注@Lazy(true)指定Bean的延遲加載。

當Bean的實現類是當前項目開發(fā)的,可以直接在Java類中使用基于注解的配置,配置比較簡單。

三、基于Java類配置

@Configuration 
public class Conf {  
  @Scope(“prototype”)  
  @Bean(“l(fā)oginUserDao”)  
  public LoginUserDao loginUserDao() {  
    return new LoginUserDao();  
  }  
}  

在標注了@Configuration的java類中,通過在類方法標注@Bean定義一個Bean。方法必須提供Bean的實例化邏輯。通過@Bean的name屬性可以定義Bean的名稱,未指定時默認名稱為方法名。在方法處通過@Autowired使方法入參綁定Bean,然后在方法中通過代碼進行注入;也可以調用配置類的@Bean方法進行注入。通過@Bean的initMethod或destroyMethod指定一個初始化或者銷毀方法。通過Bean方法定義處標注@Scope指定Bean的作用范圍。通過在Bean方法定義處標注@Lazy指定Bean的延遲初始化。

當實例化Bean的邏輯比較復雜時,則比較適合基于Java類配置的方式。

總結

以上就是本文關于Spring 3.x中三種Bean配置方式比較詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Java中String、StringBuffer、StringBuilder的區(qū)別介紹

    Java中String、StringBuffer、StringBuilder的區(qū)別介紹

    這篇文章主要介紹了Java中String、StringBuffer、StringBuilder的區(qū)別介紹,本文講解了可變與不可變、是否多線程安全、gBuilder與StringBuffer共同點等內容,需要的朋友可以參考下
    2015-06-06
  • java基礎之Collection與Collections和Array與Arrays的區(qū)別

    java基礎之Collection與Collections和Array與Arrays的區(qū)別

    這篇文章主要介紹了java基礎之Collection與Collections和Array與Arrays的區(qū)別的相關資料,本文主要說明兩者的區(qū)別以防大家混淆概念,需要的朋友可以參考下
    2017-08-08
  • springsecurity輕松實現角色權限的示例代碼

    springsecurity輕松實現角色權限的示例代碼

    這篇文章主要介紹了springsecurity輕松實現角色權限的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • spring?boot?動態(tài)生成接口實現類的場景分析

    spring?boot?動態(tài)生成接口實現類的場景分析

    本文不具體介紹動態(tài)代理,主要看一下它在springboot項目中的實際應用,下面我們模仿feign來實現一個調用三方接口的?httpclient,感謝的朋友跟隨小編一起看看吧
    2021-11-11
  • SpringCloud OpenFeign概述與使用

    SpringCloud OpenFeign概述與使用

    OpenFeign源于Netflix的Feign,是http通信的客戶端。屏蔽了網絡通信的細節(jié),直接面向接口的方式開發(fā),讓開發(fā)者感知不到網絡通信細節(jié)。所有遠程調用,都像調用本地方法一樣完成
    2023-01-01
  • Java中引用類型class的用法總結

    Java中引用類型class的用法總結

    這篇文章主要為大家詳細介紹了Java中引用類型class的用法的相關資料,文中的示例代碼講解詳細,對我們學習Java有一定幫助,感興趣的可以了解一下
    2022-10-10
  • Spring?MVC各種參數進行封裝的方法實例

    Spring?MVC各種參數進行封裝的方法實例

    這篇文章主要給大家介紹了關于Spring?MVC各種參數進行封裝的相關資料,SpringMVC內置多種數據類型轉換器,可以根據請求中的參數與后端控制器方法的參數的關系為我們實現簡單的數據封裝,需要的朋友可以參考下
    2023-06-06
  • Java Comparable及Comparator接口區(qū)別詳解

    Java Comparable及Comparator接口區(qū)別詳解

    這篇文章主要介紹了Java Comparable及Comparator接口區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java正則表達式API字符類

    Java正則表達式API字符類

    這篇文章主要介紹了Java正則表達式API字符類,Java正則表達式API也接受預定義的字符類,下面文章內容展開了更多的相關內容介紹,需要的朋友可以參考一下
    2022-06-06
  • SpringBoot中使用HTTP客戶端工具Retrofit

    SpringBoot中使用HTTP客戶端工具Retrofit

    這篇文章主要為大家介紹了SpringBoot中使用HTTP客戶端工具Retrofit方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論