顯示具有 spring environment 標籤的文章。 顯示所有文章
顯示具有 spring environment 標籤的文章。 顯示所有文章

2017年12月21日 星期四

Java Spring - Scoping beans


  • Bean
    • 默認情況下,Spring application context所有的bean都是singleton(只有一個instance),也就是不管一個bean被injects多少次,都是同一個instance
    • 問題:
      • 有些application中,object使用stateless可能不太合理
      • 有些時候某些object是mutable(狀態會變),所以會有一些state,因此reuse不安全,這個時候class若是singleton bean就會有問題
    • Spring定義了bean的scope:
      1. Singleton: 整個application只會建立一個instance (default)
      2. Prototype: 每次injects或是透過Spring application context get時都會建一個新的bean instance
      3. Session: Web application中,為每個session創建一個bean instance
      4. Request: Web application中,為每個request創建一個bean instance