Spring framework is a wide ranging framework for enterprise Java development, based on code published in Expert One-on-One J2EE Design and Development by Rod Johnson.
Primary features of Spring, mentioned by Spring team, are listed below:"- The most complete lightweight container, providing centralized, automated configuration and wiring of your application objects. The container is non-invasive, capable of assembling a complex system from a set of loosely-coupled components (POJOs) in a consistent and transparent fashion. The container brings agility and leverage, and improves application testability and scalability by allowing software components to be first developed and tested in isolation, then scaled up for deployment in any environment (J2SE or J2EE).
- A common abstraction layer for transaction management, allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues.
- A JDBC abstraction layer that offers a meaningful exception hierarchy (no more pulling vendor codes out of SQLException), simplifies error handling, and greatly reduces the amount of code you'll need to write.
- Integration with Toplink, Hibernate, JDO, and iBATIS SQL Maps: in terms of resource holders, DAO implementation support, and transaction strategies. First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues. All of these comply to Spring's generic transaction and DAO exception hierarchies.
- AOP functionality, fully integrated into Spring configuration management. You can AOP-enable any object managed by Spring, adding aspects such as declarative transaction management. With Spring, you can have declarative transaction management without EJB... even without JTA, if you're using a single database in Tomcat or another web container without JTA support.
- A flexible MVC web application framework, built on core Spring functionality. This framework is highly configurable via strategy interfaces, and accommodates multiple view technologies like JSP, Velocity, Tiles, iText, and POI. Note that a Spring middle tier can easily be combined with a web tier based on any other web MVC framework, like Struts, WebWork, or Tapestry."
NOTES: At the beginning of reading the materials, the feature, which caught my eyes first, was the technique named “Dependency Injection”. The basic idea of the Dependency Injection is to have a separate object that populates a field in the lister class with an appropriate implementation for the finder interface. The advantages is that code in your project can get much cleaner when the dependency injection principle is applied, and a higher degree of decoupling is much easier when beans do not look up their dependencies. Hence, if this technique is adopted in future projects, it might help us a lot to reduce, or even eliminate, a components unnecessary dependencies. In this way, code can be more reusable, testable and readable.
No comments:
Post a Comment