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

java JSP開發(fā)之Spring中Bean的使用

 更新時間:2017年08月06日 11:09:09   投稿:lqh  
這篇文章主要介紹了java JSP開發(fā)之Spring中Bean的使用的相關(guān)資料,在Spring中,bean的生命周期就比較復(fù)雜,這里就詳細(xì)介紹下,需要的朋友可以參考下

java JSP開發(fā)之Spring中Bean的使用

在傳統(tǒng)的Java應(yīng)用中,bean的生命周期很簡單。使用Java關(guān)鍵字new進(jìn)行bean實(shí)例化,然后bean就可以被使用了,一旦該bean不再使用,Java就自動進(jìn)行垃圾回收。然而,在Spring中,bean的生命周期就比較復(fù)雜了。下面是一個bean裝載到Spring應(yīng)用上下文的過程:

  如圖所示:在你準(zhǔn)備調(diào)用bean之前,bean工廠執(zhí)行了若干啟動步驟:

      1.Spring對bean進(jìn)行實(shí)例化;

      2.Spring將值和bean的引用注入到bean對應(yīng)的屬性中;

      3.如果bean實(shí)現(xiàn)了BeanNameAware接口,Spring將bean的ID傳遞給setBean-Name()方法;

      4.如果bean實(shí)現(xiàn)了BeanFactoryAware接口,Spring將調(diào)用setBeanFactory()方法,將BeanFactory容器實(shí)例傳入;

      5.如果bean實(shí)現(xiàn)了ApplicationContextAware接口,Spring將調(diào)用setApplicationContext()方法,將bean所在的應(yīng)用上下文的引用傳入進(jìn)來;

      6.如果bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring將調(diào)用它們的post-ProcessBeforeInitialization()方法;

      7.如果bean實(shí)現(xiàn)了InitializingBean接口,Spring將調(diào)用它們的after-PropertiesSet()方法。類似地,如果bean使用initmethod聲明了初始化方法,該方法也會被調(diào)用;

      8.如果bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring將調(diào)用它們的post-ProcessAfterInitialization()方法;

      9.此時,bean已經(jīng)準(zhǔn)備就緒,可以被應(yīng)用程序使用了,它們將一直駐留在應(yīng)用上下文中,直到該應(yīng)用上下文被銷毀;

      10.如果bean實(shí)現(xiàn)了DisposableBean接口,Spring將調(diào)用它的destroy()接口方法。同樣,如果bean使用destroy-method聲明了銷毀方法,該方法也會被調(diào)用。

一,創(chuàng)建可以被發(fā)現(xiàn)的Bean

  在廚師的眼中,一套好的刀是必不可少的,它能夠?qū)⑵降氖澄锼夭募庸こ删碌乃囆g(shù)品。

 package cooking;
 
 public interface knife{
 
   void cut();
 }

  現(xiàn)在,我們創(chuàng)建一個名為knife(刀)的接口,它擁有cut(切)的功能。接下來我們實(shí)現(xiàn)這個接口

package cooking

  @Component
public class beef implements knife{

 private int weight = 2;
 private double price = 32.1;

 public void cut(){
  System.out.println(“This is perfect beef”,+“weight:”+weight
+“kg”+“,”+“It's price is”+price+"$");
  }    
}

  請注意,我們在beef類上使用了@Component注解。這個簡單的注解表明 該類是一個組件類,并告訴Spring要為這個類創(chuàng)建bean。

  在默認(rèn)情況下,組件掃描是不啟用的,我們需要顯示配置一下Spring,命令Spring去尋找?guī)в蠤Component注解的類,并為其創(chuàng)建bean

package cooking

@Configuration
@ComponentScan
public class knifeConfig{

  
}

  注意到,在knifeConfig類上加上了@ComponentScan注解,該注解能夠在Spring中開啟組件掃描,如果沒有其他配置的話,@ComponentScan默認(rèn)會掃描與配置類相同的包,去查找?guī)в蠤Component的注解類,并在Spring中自動為其創(chuàng)建一個bean。如果你更傾向于使用XML來啟用組件掃描的話,那么可以使用Spring context命名空間的<context:component-scan>元素。

<context:component-scan base-package="cooking"/> 該標(biāo)簽會開啟組件掃描,去cooking包下尋找?guī)в蠤Component的注解類。

以上就是Spring中Bean的使用方法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java導(dǎo)出CSV文件的方法

    Java導(dǎo)出CSV文件的方法

    這篇文章主要為大家詳細(xì)介紹了Java導(dǎo)出CSV文件的方法,分頁查詢大數(shù)據(jù)量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Spring之@DependsOn注解詳細(xì)解析

    Spring之@DependsOn注解詳細(xì)解析

    這篇文章主要介紹了Spring之@DependsOn注解詳細(xì)解析,@DependsOn注解是Spring中提供的一個指定Spring創(chuàng)建Bean的依賴順序的注解,需要的朋友可以參考下
    2024-01-01
  • Java簡單數(shù)組排序(冒泡法)

    Java簡單數(shù)組排序(冒泡法)

    這篇文章主要介紹了Java簡單數(shù)組排序,實(shí)例分析了基于冒泡法實(shí)現(xiàn)數(shù)組排序的相關(guān)技巧,簡單實(shí)用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java如何實(shí)現(xiàn)將類文件打包為jar包

    Java如何實(shí)現(xiàn)將類文件打包為jar包

    這篇文章主要介紹了Java如何實(shí)現(xiàn)將類文件打包為jar包,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用@JsonFormat和@DateTimeFormat對Date格式化操作

    使用@JsonFormat和@DateTimeFormat對Date格式化操作

    這篇文章主要介紹了使用@JsonFormat和@DateTimeFormat對Date格式化操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java ThreadPoolExecutor線程池拒絕策略避坑

    java ThreadPoolExecutor線程池拒絕策略避坑

    這篇文章主要為大家介紹了java ThreadPoolExecutor拒絕策略避坑踩坑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • jmeter正則表達(dá)式提取器的用法與正則詳解

    jmeter正則表達(dá)式提取器的用法與正則詳解

    在使用Jmeter過程中,會經(jīng)常使用到正則表達(dá)式提取器提取器,下面這篇文章主要給大家介紹了關(guān)于jmeter正則表達(dá)式提取器的用法與正則的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 解決java 查看JDK中底層源碼的實(shí)現(xiàn)方法

    解決java 查看JDK中底層源碼的實(shí)現(xiàn)方法

    本篇文章是對在java中查看JDK中底層源碼的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • springmvc多事務(wù)提交和回滾問題

    springmvc多事務(wù)提交和回滾問題

    本文介紹了Spring MVC中如何配置和使用多事務(wù)管理及回滾,重點(diǎn)內(nèi)容包括配置jdbc.properties文件,使用Spring Framework 5.3版本新增的CompositeTransactionManager,以及如何在相關(guān)方法上添加@Transactional注解
    2024-09-09
  • java類的全限定名是什么

    java類的全限定名是什么

    Java中的全限定名指的是包含包名和類名的完整標(biāo)識,例如“java.lang.String”,而非限定名僅指類名,如“String”,全限定名用于區(qū)分不同包中相同名字的類,避免引用混淆,特別是在有多個包含相同類名的庫時
    2024-09-09

最新評論