`
InnocentBoy
  • 浏览: 21672 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring bean的singleton、prototype及ejb3 session bean

阅读更多
    读EJB3 In Action的时候,看到了stateless bean和stateful bean,忽然想起了spring的singleton和prototype作用域的bean,EJB3 的stateful bean需要注意性能问题,spring prototype作用域的bean(spring的原话:对于prototype作用域的bean,有一点非常重要,那就是Spring不能对一个prototype bean的整个生命周期负责:容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对prototype而言,任何配置好的析构生命周期回调方法都将不会被调用。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,都是客户端代码的职责)也是性能问题,而且是非常的相似!EJB3 stateless bean可以池化,而spring singleton的作用域的bean容器只生成一份(也是无状态的)。
    下面是问题的关键:在EJB3 in Action里有这样的话,切记不要把stateful bean注入stateless bean,于是我想到了是不是也不应该把spring的prototype作用域的bean注入到sington作用域的bean?我的答案是肯定的。因为无论把那种bean相互注入,都不会出错,只会导致运行时异常(而且这个不容易发现,只有并发用户访问才会有),而我们的开发人员开发时,往往不出错误就认为程序没问题。在这里讨论一下,有利于使用spring搭建系统的用户思考。
分享到:
评论

相关推荐

    EJB3.0__EJB3.0

    在Spring框架中,`@Scope("singleton")`类似`@Stateless`,`@Scope("prototype")`类似`@Stateful`。 在实际项目中,由于管理简单和资源效率,通常更倾向于使用`@Stateless`。然而,如果需要维护客户端会话状态,如...

    Spring系列面试题129道(附答案解析)

    20、springbean容器的生命周期是什么样的? Spring Bean的生命周期包括以下几个主要阶段: - Bean的实例化。 - 对Bean进行属性赋值和依赖注入。 - 如果Bean实现了BeanNameAware、BeanFactoryAware等接口,会调用相应...

    Spring的经典面试题

    ### Spring框架概述及核心特性 #### 1. 什么是Spring框架?Spring框架有哪些主要模块? - **Spring框架**是一个开放源代码的企业级Java应用程序框架,它以轻量级容器为核心,提供了一系列强大的功能来简化Java应用...

    25个经典的Spring面试问答.docx

    Spring Bean有单例(singleton)、原型(prototype)、请求(request)、会话(session)和全局会话(global session)等作用域,每个作用域对应不同的对象创建和存活策略。 10. Spring的嵌入beans是什么? 嵌入...

    Spring面试问答

    Spring Bean有五种作用域:singleton(单例)、prototype(原型)、request、session和global session。其中,singleton是最常见的,每个容器中只有一个实例;prototype用于每次请求或需要时创建新实例。 这只是...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.3.3. bean属性及构造器参数详解 3.3.3.1. 直接量(基本类型、Strings类型等。) 3.3.3.2. 引用其它的bean(协作者) 3.3.3.3. 内部bean 3.3.3.4. 集合 3.3.3.5. Nulls 3.3.3.6. XML-based configuration metadata ...

    25个经典的Spring面试问答

    【Spring Bean的范围】包括Singleton(单例)、Prototype(原型)、Request、Session和GlobalSession等,决定Bean的实例化次数和生命周期。 【注解如@Autowired、@Required和@Qualifier】用于自动化装配Bean,简化...

    Spring面试

    SpringBean的生命周期包括初始化、运行时和销毁三个阶段。开发者可以通过实现特定的方法或使用注解来定制Bean的生命周期行为。 #### 9. Bean的作用域 - **singleton**:在整个Spring容器中只存在一个实例。 - **...

    spring(一)–概念和历史/hellospring/IOC创建对象的方式/Spring配置/set注入/c命名和p命名空间注入/bean的作用域

    3. 会话(session):在Web应用中,每个HTTP会话都有一个独立的Bean实例。 4. 请求(request):在Web应用中,每个HTTP请求都有一个独立的Bean实例。 【总结】 Spring框架通过依赖注入和面向切面编程简化了Java...

    Spring 开发参考手册

    - **Bean 定义**: Bean 定义是 Spring IoC 容器中的基本单位,描述了 Bean 的配置信息,如类名、作用域、生命周期回调方法等。 - **创建方式**: - 通过构造函数创建 Bean - 通过静态工厂方法创建 Bean - 通过实例...

    千锋最新版spring6.0框架GA版详解.pdf

    Spring支持singleton、prototype、request、session等多种作用域。 8. **Spring创建对象的生命周期** Spring管理的对象具有明确的生命周期,包括初始化阶段、运行时阶段以及销毁阶段。 #### 三、依赖注入...

    Spring 2.0 开发参考手册

    3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on 3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. ...

    Spring中文帮助文档

    3.4.3. Singleton beans和prototype-bean的依赖 3.4.4. 其他作用域 3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用...

    Spring API

    3.4.3. Singleton beans和prototype-bean的依赖 3.4.4. 其他作用域 3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson ...18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS ...

    Java EE(容易).doc

    - Spring为Bean定义了多种作用域,包括单例(singleton)、原型(prototype)、请求(request)、会话(session)和全局会话(global session)。 以上就是Java EE中的Spring MVC、MyBatis、AspectJ以及Spring框架...

Global site tag (gtag.js) - Google Analytics