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