、不需要的原因是看开发者怎么用,如果你给 中定义很多的属性,那么单例肯定会出现竞争访问了。
:因此,只要 中不定义属性,那么单例完全是安全的。下面给个例子说明下:
7
7+2ABBB(A
7A9A
@"
::::C:1D::::::BB静态的
::::!C:1D::::::::::BB非静态
::::7+2ABA
::::@"
::::::::EC:ED
::::::::$EFAAD
::::::::$&AAD
::::::::$AAD
::::::::ABB(BAD
::::%
::::7+2ABA
::::@"
::::::::9$$GGG:AHAG!GGD
::::::::ABB(BAD
::::%
%
1H1
H1
H1
H1
'H1
改为单例的:
1H1
H
H
H
'H'
从此可见,单例是不安全的,会导致属性重复使用。
最佳实践:
、不要在 中定义成员变量。
、万一必须要定义一个非静态成员变量时候,则通过注解7A9A,将其设置为多例模式。
1.7. SpringMVC 的组件说明
以下组件通常使用框架提供实现:
:前端控制器
用户请求到达前端控制器,它就相当于 模式中的 , 是整个流程控制的中心,由它调用其它组件处理用户的
请求, 的存在降低了组件之间的耦合性。
:处理器映射器
负责根据用户请求找到 即处理器, 提供了不同的映射器实现不同的映射方式,例如:配置文