Well, Spring is just a framework that makes the development
part of complex applications easy allowing developers to focus more on logical
part rather than maintaining lot of files. With 2.5 version release, use of
annotations is being launched because of which usage of lot of xml files is
eliminated. So can say overall much improved. Before that one might be thinking
after all –why do we need hell these frameworks right?
Well, frameworks just are like extended versions of design
patterns and are they are made to help developers to avoid writing repeated
code again and again. They allow developers to focus more on development providing
reusability of existing infrastructure things. In the starting or to any
layman, it may sound like a making things complicated but in actual sense these
complicated frameworks have capability to maintain complex applications for
ever. This major advantage of complex applications comes into picture when
complex enterprise applications are being developed. Such applications are so
complex and big [full of so many features] that they require considerable
amount of resources to maintain them. In order to avoid the overhead of that
these frameworks come into picture. Moreover, they take care of security
aspects also.
Frameworks concept was basically introduced since the time Java
Programming is becoming popular. Various Design Patterns are offered by Sun to do
so, but frameworks can be called as advanced versions of those patterns
providing more and more features. There
are many frameworks available in market; problem comes in deciding which one to
go for right? Like EJB3 Framework, Spring Framework, ADF Framework, Struts
Framework etc.etc. –
Struts2 Framework: This Apache Struts is a free open-source framework for creating Java web applications. This framework is mostly used for creating UI part but not of that good quality. Ajax use is costly in this. Though this framework do not
provide us facility of making rich text based UI. So, this is losing importance
with time.
.NET Framework: [Missed this framework before, now adding it.] .NET is a framework for s/w development. It is also similar to other J2EE frameworks in that it provides a set of runtime container/capabilities and a rich set of pre-built functionality in the form of classs libraries and APIs. It provides an environment for building, deploying and running web services and applications but it has still drawbacks like disconnected data architecure and interaction with database is done through data commands. So it is an overhead in case of applications that handle remote transactions as well as it is not as secured as other frameworks. Database related flaws are not implemented well in this framework.
ADF Framework:
Still research is going on it. Problem is not an open source. It is Oracle
owned. But development using it is going to reduce developer’s lot of time
spent in development. It provides awesome facility of making a UI page[supporting
AJAX also] in minutes and even it has capability of making programs such that
can support PDAs. It provides lot of
features for UI [almost everything] making rich text pages.
EJB Framework : EJB
Framework is good in helping a developer by providing reusable components
called as beans but creates an overhead of creating Remote Interface, Home
Interface files along with a simple POJO [Plain old Java Objects] file called a
bean often. Moreover to run even a simple EJB project you need an application
server [Note: tomcat – a web container do not work] to deploy EAR file. So
development becomes kind of 3 step process – CODE, WAIT, TEST rather than CODE,TEST.
Avoid usage of this framework until the application being developed is very-
very complex. This framework like spring framework takes care of Security and
transaction management’s related issues.
Spring Framework:
Well, being having advantage of open
source, this framework is also gaining popularity. Moreover, it is more loosely
coupled unlike EJB framework. Main advantage of this framework is at places
where your application is too complex to develop and requires use of EJBs but
don’t want to take overhead associated with EJB framework. It also provides
option of many plug-ins to be used based on developer’s needs. Spring provides a light-weight solution for building enterprise-ready applications, while still supporting the possibility of using declarative transaction management, remote access to your logic using RMI or web services, and various options for persisting your data to a database. Spring provides a full-featured MVC(Model view Controller) framework, and transparent ways of integrating AOP(Aspect Oriented Programming) into your software. Spring could potentially be a one-stop-shop for all your enterprise applications; however, Spring is modular, allowing you to use just those parts of it that you need, without having to bring in the rest.
[ PS: Feel free to correct and add more information regarding tis. List above may get updated. Keep an eye for more information on Springs ]
Thanks ! :)