<!----><!----><!---->
<!---->
[TTS
编辑注:这是
TTS
论坛上的原帖。我现在把它放到
TTS
主页上来,就是认定这又会是一场非常有趣的口水打仗。
]
原文请看:http://www.theserverside.com/news/thread.tss?thread_id=50477
正文:
首先,我不是
Spring
的反对者。我已经在许多项目中用到了
Spring
,并心悦诚服的认为它是一个伟大的框架。
我想就我实际工作中
Spring+JEE
的整合,来探讨一些实际中遇到的问题(或者说更具“学术”性质的问题)。当我第一次看
JEE
规范的时候,这些问题就开始萦绕在我脑中。虽然的让我很困惑啊,但却很有意义。我现在已经知道不可以直接往文件系统写内容了。
[
注:在
EJB
中新建,修改,删除文件系统的文件是不允许的
]
。但我却不知道,在
EJB 3.0 Spec 21.1.2
规范中指出:在
EJBs
中不允许使用
Class.forName()
或类似的方法。
规范指出:
<!---->l
<!---->不允许
EJB
去试图建立一个
class
loader
;
<!---->l
<!---->不允许
EJB
去得到当前的
class
loader
;
<!---->l
<!---->不允许
EJB
去设置当前的
class
loader
;
<!---->l
<!---->不允许
EJB
去设置
security
manager
(安全管理);
<!---->l
<!---->不允许
EJB
去停止
JVM
;
<!---->l
<!---->不允许
EJB
改变
input,
output
以及
error
stream(
流
)
;
这就是
Spring
的第一个违反
JEE
规范的实例:当我要得到
Spring
中配置的
Bean
时,该
bean
会动态的用类似于
Class.forName()
的方法将其实例化。在使用这个方法,那么无论是显式还是隐式的都会得到一个
class loader
。我认为不允许动态实例化的意义在于应用服务器是想完全掌控应用程序,从而将资源等其它方面达到最优。你们怎么想的?我确实很想听听你们的意见。难道我对规范理解错了?
第二个违反规范的例子是在
J2EE
应用程序中使用
AbstractStatelessSessionBean
时发现的。规范中说:
Stateless Session Bean
不允许被继承。这点我同意,尽管看上去过于“学术”,但我坚信这么做一定有它的理由。(
[
注
]
关于这一点,网友马上找到规范当场对质。实际上规范说是是:
session bean
可以有父类或接口
…….
一个
session
bean
不允许将另一个
session bean
作为其父类
……….
)
我还发现根本就没要
Spring+JEE
组合。
因为同样我还发现,一些
Spring Integration Modules
在不同的应用服务器下表现的比直接使用
Spring
更出色。
(
比如说在
EJB
容器中加载
Spring Context)
。你们在用应用服务器与
Spring Integration Modules
整合时,有没有类似经验?你们觉得这样使用是不是就可以解决我上面我所提到的问题呢?
分享到:
相关推荐
**Spring 框架概述** Spring Framework 是 Java 平台上的一款广泛应用的开源框架,它为构建高质量的企业级应用提供了全面的解决方案。Spring 的核心设计理念是依赖注入(Dependency Injection,DI)和面向切面编程...
《Spring框架中的XSD文件详解——以spring-jee-4.2.xsd为例》 在软件开发领域,Spring框架以其强大的功能和灵活的配置而备受推崇。Spring框架的核心在于其XML配置文件,其中包含了对应用组件和服务的定义。在XML...
在本篇博客“JEE、Spring、Spring MVC、MyBatis 学习(十)”中,作者深入探讨了这四个关键的Java企业级开发技术,它们是构建现代Web应用程序的基础。下面将对这些技术进行详细阐述。 1. JEE(Java Enterprise ...
在本篇【jee、spring、spring mvc、mybatis 学习(五)】中,我们将深入探讨四个关键的Java企业级开发技术:Java EE(Java Enterprise Edition)、Spring框架、Spring MVC以及MyBatis。这些技术是现代Java Web应用...
在本篇学习中,我们将深入探讨Java企业版(Java Enterprise Edition, JEE)、Spring框架、Spring MVC以及MyBatis这四个关键的技术栈。这些技术在现代企业级开发中扮演着重要角色,尤其对于构建可扩展、高效且易于...
在本篇学习中,我们将深入探讨Java企业版(Java Enterprise Edition, JEE)、Spring框架、Spring MVC以及MyBatis这四个关键的技术栈。这些技术在现代企业级Web应用开发中扮演着至关重要的角色。 首先,JEE是Java...
Spring框架是JEE生态中的一个重要组成部分,尤其在轻量级应用服务器中,Spring以其灵活的依赖注入和面向切面编程特性,成为了现代Java应用开发的核心。 Spring框架分为多个模块,其中Spring MVC是用于构建Web应用...
在本篇学习中,我们将深入探讨Java企业版(Java Enterprise Edition, JEE)、Spring框架、Spring MVC以及MyBatis这四个关键的技术栈。这些技术在现代企业级开发中扮演着重要角色,尤其对于构建可扩展、高效且易于...
在本篇学习中,我们将深入探讨Java企业级开发中的核心框架——JEE、Spring、Spring MVC以及MyBatis。这四个技术是构建现代Java应用程序的基础,尤其在开发Web应用时,它们提供了强大的功能和灵活性。 首先,JEE...
标题中的"JEE AND SPRING"指的是Java企业版...在实际开发中,理解并熟练运用JEE规范和Spring框架可以提升开发效率,而汉化包则有助于降低学习和使用的难度,尤其对于初学者或者不熟悉英文界面的开发者来说。
jee、spring、spring mvc、mybatis 学习(三) ,http://blog.csdn.net/?aspxerrorpath=/qq5132834/article/details/52199255
Spring OSGi规范中文版是将Spring框架与OSGi(Open Service Gateway Initiative)技术相结合的指导文档,旨在帮助Java开发者更好地在OSGi环境下利用Spring框架的优势。OSGi是一种动态模块化系统,允许组件(称为...
标题中的"jee#spring#hibernate#stru2ct"和描述中的"Spring#struct2#hibernat#java#jee"共同指向了Java企业级开发中的几个关键框架和技术,包括Java Enterprise Edition (JEE),Spring框架,Hibernate ORM框架,以及...
Spring框架是Java企业版(JEE)开发中的一个重要工具,其设计目的是简化应用程序的构建,提高模块化的效率和代码的可维护性。本篇将详细阐述Spring的核心内容,包括容器、控制反转(IoC)和面向切面编程(AOP),并...
【标题】"韩顺平 全套视频教程 java jee ssh spring php orcle" 提供了一个全面的学习路径,涵盖了Java、Java Enterprise Edition (Java EE)、Struts、Hibernate、Spring框架,以及PHP和Oracle数据库等多个IT领域的...
- Spring Tools Suite:集成Spring框架开发工具,简化Spring应用开发。 - Maven Integration:集成Maven构建系统,管理依赖关系和构建流程。 7. **版本控制**: - Git集成:Eclipse内置Git支持,方便代码版本...
Spring框架是Java和JEE应用开发中的一个核心框架,它以其全面的功能和灵活性在业界广泛使用。Spring的主要目标是简化Java企业级应用程序的开发,提供了一种有效的方式来组织和管理应用程序的组件,同时减少了代码的...
spring-aop、spring-beans、spring-cache、spring-context、spring-jdbc、spring-jee、spring-jms、spring-lang、spring-mvc、spring-oxm、spring-task、spring-tool、spring-tx、spring-util、spring-websocket、
Spring 框架是Java企业版(JEE)开发中的一个关键组件,它提供了一种模块化和简化应用开发的方法。Spring 框架的主要目标是使开发人员能够创建松散耦合的组件,提高代码的可测试性、可维护性和可扩展性。通过遵循...
《Eclipse JEE Neon 3 for Windows:一款高效强大的开发利器》 Eclipse JEE Neon 3 是Eclipse基金会发布的一款专为Java EE开发者设计的集成开发环境(IDE)。这款软件以其强大的功能、高效的性能以及丰富的插件生态...