配置Bean的作用域

一、Spring中Bean的5个作用域

在Spring 2.0及之后的版本中,Bean的作用域被划分为5种。如下

  • singleton      默认值。以单例模式创建Bean的实例,即容器中该Bean的实例只有一个
  • prototype     每次从容器中获取Bean时,都会创建一个新的实例
  • request      用于Web应用环境,针对每次Http请求都会创建一个实例
  • session      用于Web应用环境,同一个回话共享同一个实例,不同的回话使用不同的实例
  • global session   仅在Portlet的Web应用中使用,同一个全局回话共享一个实例。对于非Portlet环境,等同于session

singleton是默认的作用域,即默认情况下Spring为每个Bean仅创建一个实例。对于不存在线程安全问题的组件,采用这种方式可以大大减少创建对象的开销,提高运行效率。而对于存在线程安全问题的组件,可以使用prototype作用域。如下

<bean id="userService" class="edu.cn.service.Impl.UserServiceImpl" scope="prototype">
</bean>

二、使用注解指定Bean的作用域

对于使用注解声明的Bean组件,如需修改其作用域,可以使用@Scope注解实现。如下

@Service
@Scope("prototype")
public class UserServiceImpl implements UserService {
    //省略

猜你喜欢

转载自www.cnblogs.com/yanguobin/p/11703568.html
今日推荐