正在加载...
 
 登 录/注 册    帮助  |  反馈
相关主题:
    管 理  员:
    关 键  字:
    目 标 :[ 目标剩余时间: ]
    似乎已经突破了一种程序语言的界限,做的这么大而全,不知道到底是不是好事?
        
    作者
        Introduction to the Spring Framework by Rod Johnson   [2007-04-14]回复
    专家用户
    参与值:2212
    贡献值:112

    [separator]

    非常好的一篇介绍Spring Framework的文章,荐!

    原文全文阅读http://www.theserverside.com/tt/articles/article.tss?l=SpringFramework

    [separator]

    Yet another framework?

    You may be thinking "not another framework." Why should you read this article, or download the Spring Framework (if you haven't already), when there are so many J2EE frameworks, or when you could build your own framework? The sustained high level of interest in the community is one indication that Spring must offer something valuable; there are also numerous technical reasons.

    I believe that Spring is unique, for several reasons:

    • It addresses important areas that many other popular frameworks don't. Spring focuses around providing a way to manage your business objects.
    • Spring is both comprehensive and modular. Spring has a layered architecture, meaning that you can choose to use just about any part of it in isolation, yet its architecture is internally consistent. So you get maximum value from your learning curve. You might choose to use Spring only to simplify use of JDBC, for example, or you might choose to use Spring to manage all your business objects. And it's easy to introduce Spring incrementally into existing projects.
    • Spring is designed from the ground up to help you write code that's easy to test. Spring is an ideal framework for test driven projects.
    • Spring is an increasingly important integration technology, its role recognized by several large vendors.

    Spring is not necessarily one more framework dependency for your project. Spring is potentially a one-stop shop, addressing most infrastructure concerns of typical applications. It also goes places other frameworks don't.

    An open source project since February 2003, Spring has a long heritage. The open source project started from infrastructure code published with my book, Expert One-on-One J2EE Design and Development, in late 2002. Expert One-on-One J2EE laid out the basic architectural thinking behind Spring. However, the architectural concepts go back to early 2000, and reflect my experience in developing infrastructure for a series of successful commercial projects.

    Since January 2003, Spring has been hosted on SourceForge. There are now 20 developers, with the leading contributors devoted full-time to Spring development and support. The flourishing open source community has helped it evolve into far more than could have been achieved by any individual.

    [separator]

    Architectural benefits of Spring

    Before we get down to specifics, let's look at some of the benefits Spring can bring to a project:

    • Spring can effectively organize your middle tier objects, whether or not you choose to use EJB. Spring takes care of plumbing that would be left up to you if you use only Struts or other frameworks geared to particular J2EE APIs. And while it is perhaps most valuable in the middle tier, Spring's configuration management services can be used in any architectural layer, in whatever runtime environment.
    • Spring can eliminate the proliferation of Singletons seen on many projects. In my experience, this is a major problem, reducing testability and object orientation.
    • Spring can eliminate the need to use a variety of custom properties file formats, by handling configuration in a consistent way throughout applications and projects. Ever wondered what magic property keys or system properties a particular class looks for, and had to read the Javadoc or even source code? With Spring you simply look at the class's JavaBean properties or constructor arguments. The use of Inversion of Control and Dependency Injection (discussed below) helps achieve this simplification.
    • Spring can facilitate good programming practice by reducing the cost of programming to interfaces, rather than classes, almost to zero.
    • Spring is designed so that applications built with it depend on as few of its APIs as possible. Most business objects in Spring applications have no dependency on Spring.
    • Applications built using Spring are very easy to unit test.
    • Spring can make the use of EJB an implementation choice, rather than the determinant of application architecture. You can choose to implement business interfaces as POJOs or local EJBs without affecting calling code.
    • Spring helps you solve many problems without using EJB. Spring can provide an alternative to EJB that's appropriate for many applications. For example, Spring can use AOP to deliver declarative transaction management without using an EJB container; even without a JTA implementation, if you only need to work with a single database.
    • Spring provides a consistent framework for data access, whether using JDBC or an O/R mapping product such as TopLink, Hibernate or a JDO implementation.
    • Spring provides a consistent, simple programming model in many areas, making it an ideal architectural "glue." You can see this consistency in the Spring approach to JDBC, JMS, JavaMail, JNDI and many other important APIs.

    Spring is essentially a technology dedicated to enabling you to build applications using POJOs. This desirable goal requires a sophisticated framework, which conceals much complexity from the developer.

    Thus Spring really can enable you to implement the simplest possible solution to your problems. And that's worth a lot.

    [separator]

    What does Spring do?

    Spring provides a lot of functionality, so I'll quickly review each major area in turn.

    发表评论:

    ©2006-2008 深圳市海为信息技术有限公司  关于i170 | 工作机会 | 联系我们            粤ICP备05095695号