最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring中的FactoryBean代碼示例

 更新時間:2017年10月23日 15:32:05   作者:zhangjk1993  
這篇文章主要介紹了spring中的FactoryBean代碼示例,涉及FactoryBean的實現(xiàn)等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。

上篇文章中我們介紹了淺談Spring的兩種配置容器,接下來我們就了解下spring中的FactoryBean的相關(guān)內(nèi)容,具體如下。

從SessionFactory說起:

在使用SSH集成開發(fā)的時候,我們有時候會在applicationContext.xml中配置Hibernate的信息,下面是配置SessionFactory的一段示例代碼:

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="hibernateProperties"> 
      <props> 
        <!-- 是否自動更新表項目 --> 
        <prop key="hibernate.hbm2ddl.auto">update</prop> 
        <!-- 數(shù)據(jù)庫使用的方言 --> 
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> 
        <!-- 是否顯示產(chǎn)生的sql語句 --> 
        <prop key="hibernate.show_sql">true</prop> 
        <!-- 是否顯示格式化產(chǎn)生的sql語句 --> 
        <prop key="hibernate.format_sql">true</prop> 
      </props> 
    </property> 
    <property name="mappingResources"> 
      <list> 
        <value>bean/User.hbm.xml</value> 
      </list> 
    </property> 
  </bean> 

下面我們在程序中取一下sessionFacroty,然后打印出出它的類型

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 
System.out.println(applicationContext.getBean("sessionFactory").getClass().getName()); 

我們會發(fā)現(xiàn)它的類型為 org.hibernate.internal.SessionFactoryImpl,而不是org.springframework.orm.hibernate4.LocalSessionFactoryBean,這是為什么呢?

其實在Spring中為我們提供了兩種類型的bean,一種就是普通的bean,我們通過getBean(id)方法獲得是該bean的實際類型,另外還有一種bean是FactoryBean,也就是工廠bean,我們通過getBean(id)獲得是該工廠所產(chǎn)生的Bean的實例,而不是該FactoryBean的實例。

那么如何實現(xiàn)一個FactoryBean呢,Spring為我們提供了一個FactotyBean的接口,只要實現(xiàn)了這個接口,我們創(chuàng)建的bean就是FactoryBean,下面是一個示例

package factory; 
import org.springframework.beans.factory.FactoryBean; 
import bean.User; 
 
public class UserFactory implements FactoryBean<User>{ 
  @Override 
  public User getObject() throws Exception { 
    return new User(); 
  } 
  @Override 
  public Class<?> getObjectType() { 
    return User.class; 
  } 
  /** 
   * 工廠所管理的對象是否為單例的 
   * 即如果該方法返回true,那么通過getObject()方法返回的對象都是同一個對象 
   */ 
  @Override 
  public boolean isSingleton() { 
    return true; 
  } 
} 

在applicationContext.xml中配置一下

<bean id="userFactory" class="factory.UserFactory" /> 

然后我們再將userFactory打印出來,得到的對象為bean.User類型。

ok,那么如何才能得到UserFactory的實例,而不是User對象的實例,我們只需要在取對象時加上一個"&"符號,如下所示

UserFactory userFactory = (UserFactory) applicationContext.getBean("&userFactory");

總結(jié)

以上就是本文關(guān)于spring中的FactoryBean代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java Spring-Cache key配置注意事項介紹Java之Spring注解配置bean實例代碼解析等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!

相關(guān)文章

  • Java 完美判斷中文字符的方法

    Java 完美判斷中文字符的方法

    Java判斷一個字符串是否有中文一般情況是利用Unicode編碼正則來做判斷,但是其實這個區(qū)間來判斷中文不是非常精確,以下是比較完善的判斷方法
    2013-02-02
  • Spring boot的上傳圖片功能實例詳解

    Spring boot的上傳圖片功能實例詳解

    Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。這篇文章主要介紹了Spring boot 上傳圖片,需要的朋友可以參考下
    2018-03-03
  • IDEA之翻譯器的使用Translation

    IDEA之翻譯器的使用Translation

    這篇文章主要介紹了IDEA之翻譯器的使用Translation,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 關(guān)于String.format()格式化輸出方式

    關(guān)于String.format()格式化輸出方式

    String.format()是Java的格式化輸出方法,支持多種數(shù)據(jù)類型和格式化選項,它在格式化和拼接字符串時具有較高的靈活性,但效率相對較低,特別是在處理大量數(shù)據(jù)時,在實際編程中,應根據(jù)具體需求選擇合適的字符串拼接方式
    2024-12-12
  • SpringBoot全局異常處理與定制404頁面的方法

    SpringBoot全局異常處理與定制404頁面的方法

    這篇文章主要介紹了SpringBoot全局異常處理與定制404頁面的相關(guān)資料,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2007-09-09
  • java實現(xiàn)一個簡單的網(wǎng)絡(luò)爬蟲代碼示例

    java實現(xiàn)一個簡單的網(wǎng)絡(luò)爬蟲代碼示例

    這篇文章主要介紹了java實現(xiàn)一個簡單的網(wǎng)絡(luò)爬蟲代碼示例,還是挺不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-11-11
  • java簡單實現(xiàn)多線程及線程池實例詳解

    java簡單實現(xiàn)多線程及線程池實例詳解

    這篇文章主要為大家詳細介紹了java簡單實現(xiàn)多線程,及java爬蟲使用線程池實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • IntelliJ IDEA修改編碼的方法步驟

    IntelliJ IDEA修改編碼的方法步驟

    這篇文章主要介紹了IntelliJ IDEA修改編碼的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java實現(xiàn)最小生成樹算法詳解

    Java實現(xiàn)最小生成樹算法詳解

    這篇文章主要介紹了如何在Java中實現(xiàn)最小生成樹算法,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-04-04
  • Spring Security的簡單使用

    Spring Security的簡單使用

    這篇文章主要介紹了Spring Security的簡單使用,幫助大家更好的理解和學習使用SpringBoot,感興趣的朋友可以了解下
    2021-04-04

最新評論

历史| 永安市| 长垣县| 怀柔区| 彩票| 平陆县| 焦作市| 图木舒克市| 页游| 屏东市| 远安县| 石棉县| 临湘市| 双流县| 共和县| 巴里| 无极县| 东丰县| 太保市| 陆河县| 洮南市| 邓州市| 墨脱县| 日照市| 上林县| 乌恰县| 军事| 政和县| 皋兰县| 含山县| 贺州市| 新河县| 平顶山市| 永昌县| 大姚县| 竹北市| 宜兴市| 遂昌县| 闽侯县| 珲春市| 泰兴市|