日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

發布時間:2024/8/26 asp.net 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  創建應用對象之間協作關系的行為稱為裝配(wiring),這也是依賴注入的本質。

  Spring容器負責創建應用程序中的bean并通過DI來協調這些對象之間的關系,而開發者需要告訴Spring需要創建哪些bean并且如何將其裝配在一起。

  1、Spring提供了三種主要的裝配機制

  • 在XML文件中進行顯示裝配;
  • 在Java代碼中顯示裝配;(JavaConfig)
  • 隱式的bean發現機制和自動裝配;(注解)

  

  2、如何選擇裝配機制?

  完全可以靈活配置。

  但作者建議盡可能地使用自動裝配機制,且顯示配置越少越好。

  當必須顯示配置bean(有些源碼不是由你維護,而你需要為這些代碼配置bean),作者推薦使用類型安全并且比XML更加強大的JavaConfig。

  只有當你想使用便利的XML命名空間,并且在JavaConfig中沒有同樣的實現時,才應該使用XML。

?

  3、Spring怎么實現自動化裝配?

  • 組件掃描(component scanning):Spring自動發現應用上下文所創建的bean;
  • 自動裝配(autowiring):Spring自動滿足bean之間的依賴

  兩者組合能發揮強大的威力,能夠將顯示配置降低到最少。

  需要了解的是,在自動裝配時,不要在意裝配的bean來自哪里。自動裝配機制會考慮到容器中所有的bean,不管它是在JavaConfig or XML中聲明還是通過組件掃描獲取到的。只要bean在同一個Spring應用上下文中就行。

?

  4、幾種開啟組件掃描的方式:

  JavaConfig:

/*這是一個用于專用于設置配置的Java類*/
@Configuration  //聲明這是配置類 @ComponentScan //開啟組件掃描
public class JavaConfigClass{ }

?  @ComponentScan? 默認掃描與配置類相同的包(肯定就包括子包啦)。

?

  @ComponentScan(basePackages={“Package1”,“Package2”})也可以通過basePackages屬性指定一個或者多個基礎包,但是這樣并不安全。

  @ComponentScan(basePackages={AAA.class,BBB.class}),這些類所在包會作為組件掃描的基礎包。還可以專門創建一個空標記接口,用于標記基礎包,這樣可以保持對重構的友好。

  XML:

<context:component-scan base-package="com.biguo.xxx"/>

?

  

  5、自動裝配中的注解

  @Component("String ID"):該類會作為組件類,并告知Spring要為這個類創建bean。

  Spring應用上下文中所有的bean都會給定一個ID,若沒有明確指定,Spring會根據類名為其指定一個ID,默認為把類名第一個字母小寫。

  (JavaConfig中,@Named("String ID")效果相同)

?

  @Autowired

  常用于構造器、setter方法,當Spring創建它們所在對象的bean時,會傳入一個相應參數類型的bean,即自動滿足所創建bean 的(對另一個bean的)依賴。

  (這里就要考慮所依賴的bean存在不存在、有多少個的問題啦)

  (JavaConfig中,為@Inject)

   

  6、JavaConfig中聲明bean

  @Bean——告訴Spring這個方法返回一個對象,該對象要注冊為Spring應用上下文中的bean,bean的默認ID和這個方法名一致,也可以用name屬性自定義啦。

  Spring會攔截所有對@Bean注解的方法的調用,確保直接返回這個方法創建的bean,而不是讓其執行實際調用。 (這個bean還可以重復使用,因為Spring默認單例模式)

?

  7、關于混合配置

  JavaConfig中引用XML配置——@Import(xx.class)、@ImportResource("classpath:xxx.config.xml")

  XML配置中引用JavConfig~~~

?

轉載于:https://www.cnblogs.com/bigbigbigo/p/8357521.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。