add changelog for RC2
This commit is contained in:
@@ -15,6 +15,8 @@
|
||||
|
||||
* {{{2.0-highlights.html}Highlights of changes between 1.x and 2.0}}
|
||||
|
||||
* {{{2.0-rc1-rc2.html}2.0.0.RC1 to 2.0.0.RC2}}
|
||||
|
||||
* {{{2.0-m4-rc1.html}2.0.0.M4 to 2.0.0.RC1}}
|
||||
|
||||
* {{{2.0-m3-m4.html}2.0.0.M3 to 2.0.0.M4}}
|
||||
|
||||
@@ -9,7 +9,7 @@ State and Thread Safety in Spring Batch
|
||||
|
||||
A stateless component is thread safe, but sometimes not practical (you need to store some state). A stateful component can be thread safe, if its contract is clearly explained to and met by its clients. Spring Batch has a lot of stateful components, which by and large are not capable of being used in a thread safe manner, but that doesn't have to be the case for ever.
|
||||
|
||||
Components with private non-final fields are not necessarily stateful in practice - Spring components often have fields that are injected or initialized after the object is created. The working definition of "stateless" for the present purposes is a component with fields that do not change after initialization, which has the usual Spring lifecycle meaning (i.e. once "released into the wild" with <<<BeanFactory.getBean()>>, or the equivalent).
|
||||
Components with private non-final fields are not necessarily stateful in practice - Spring components often have fields that are injected or initialized after the object is created. The working definition of "stateless" for the present purposes is a component with fields that do not change after initialization, which has the usual Spring lifecycle meaning (i.e. once "released into the wild" with <<<BeanFactory.getBean()>>>, or the equivalent).
|
||||
|
||||
Conversely, even components with only final fields are not necessarily stateless. They can have the appearance of statelessness (and thread safety), but if they mutate their final fields, then they are stateful by association. It is not always possible to tell from the implementation of a component whether it is stateful by association, since it depends entirely on the implementation of its fields, whose concrete type may not even be known at compile time.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user