我正在使用Hibernate和Spring进行工作,进展顺利,但我有一些疑问。
1)为什么Spring范围默认为单例?这样做有什么原因吗?
2)我可以在Hibernate实体中写final变量吗? 例如:
@Entity
public class Emp {
@Id
private Long id;
final private String panNo;
}
我可以像上面那样写吗?
3) 静态变量可以被序列化吗?
我正在使用Hibernate和Spring进行工作,进展顺利,但我有一些疑问。
1)为什么Spring范围默认为单例?这样做有什么原因吗?
2)我可以在Hibernate实体中写final变量吗? 例如:
@Entity
public class Emp {
@Id
private Long id;
final private String panNo;
}
我可以像上面那样写吗?
3) 静态变量可以被序列化吗?
无状态的Bean规则:)如果你不打算在Bean中保存状态数据,那么每个Bean只需要一个实例就足够了。但请记住,这并不是JVM单例-只是Spring的单例。因此,您不必提供仅私有构造函数和任何getInstance()方法。
引用Spring文档:
当Bean是单例时,将管理一种共享的Bean实例,并且所有对具有匹配该Bean定义的ID或IDs的Bean的请求都将导致返回该特定Bean实例。
只有当您必须保留某些会话详细信息时,才应例如使用会话范围。