关于Bean的作用域@Scope
@Scope(value=“singleton”) 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例
@Scope(value=“prototype”) 表示每次获得bean都会生成一个新的对象
@Scope(value=“request”) 表示在一次http请求内有效(只适用于web应用)
@Scope(value=“session”) 表示在一个用户会话内有效(只适用于web应用)
@Scope(value=“globalSession”) 表示在全局会话内有效(只适用于web应用)
在Web开发中,很多时候会使用session和request,但你会发现直接添加@Scope(value=“session”)会报错,因为Controller默认是Singleton,如果你在其中注入其他非Singleton的Bean就会报错。
用法
在spring boot中提供了两个注解**@RequestScope和@SessionScope**:
- @RequestScope 对应 @Scope(value=“request”)
- @SessionScope 对应 @Scope(value=“session”)
例如:
@Service
@RequestScope()
public class LoginService
{
private int sum=0;
public void add(){
this.sum+=1;
}
public int get(</