准备重新构筑公司的框架,基于J2EE,不准备用EJB3。
1)现在老看人说SSH,Struts2和Hibernate的有点不用说了,请问Spring有什么非用不可的理由么?用Guice不可以取代它吗?
2)公司内部很多人用PHP,RoR,如何做一个框架让这些人都能舒服地开发?Facebook的框架说可以用多种语言,具体是怎么搞的?
3)我准备采用Struts2+Guice+Hibernate+Postgresql来做新的框架,请问还有别的技术可以大大简化代码,便于测试么?
4)哪种技术适合大型系统的分布式设计?分不够再加,谢谢。
1)现在老看人说SSH,Struts2和Hibernate的有点不用说了,请问Spring有什么非用不可的理由么?用Guice不可以取代它吗?
2)公司内部很多人用PHP,RoR,如何做一个框架让这些人都能舒服地开发?Facebook的框架说可以用多种语言,具体是怎么搞的?
3)我准备采用Struts2+Guice+Hibernate+Postgresql来做新的框架,请问还有别的技术可以大大简化代码,便于测试么?
4)哪种技术适合大型系统的分布式设计?分不够再加,谢谢。
(1)轻量级;
(2)面向接口编程,层于层之间基于抽象,便于代码修改;
(3)较好地集成类似Struts 、Hibernate等框架;
(4)便于测试
等等;
也不是说非用不可,只是还蛮通用的,看具体需求了。我们那边用EJB的,Struts2确实很强大。
另外听说spring做分散系统不太好,不知具体怎么样。
我觉得框架没有什么非用不可的说法,它仅仅是一个框架而已,没这个框架我们照样可以去开发;
至于spring,我接触的不算很多,但我知道它的一个特点:全面的、模块化;怎么理解?
Spring提供一种方法管理你的业务对象,比如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。
如果你的工程倾向于测试驱动方面,那么用spring或许是个不错的选择!
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
1、IOC 降低代码之间耦合性,后期易扩展维护
2、AOP 性能检测 访问控制 事务管理 日志记录
3、很强的事务管理
4、方便的融于各框架struts hibernate jbpm quartz jms dwr等等
5、很强的子项目acegi webservice等
可能没仔细看我的问题。
我知道Spring大概能做什么,同样是做IoC,DI,AoP,
Google Guice可以做得更好,而且不需要定义xml配置文件。用Annotation在编译时就可以发现错误。
而且Guice支持Struts2,比Spring的速度要快。那么在这种情况下,Spring还有什么明显的好处吗?
还有就是用的很多,最起码Google Guice我是第一次听。
1、IOC 降低代码之间耦合性,后期易扩展维护
2、AOP 性能检测 访问控制 事务管理 日志记录
3、很强的事务管理
4、方便的融于各框架struts hibernate jbpm quartz jms dwr等等
5、很强的子项目acegi webservice等