Frameworks in Java

Tuesday, 19 July 2011 09:33

What is a framework in Java

In programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by programmer code, thus providing application specific software. It is a collection of software libraries/components providing a defined application programming interface (API).

Frameworks contain key distinguishing features that separate them from normal libraries:

  • inversion of control - In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework. default behavior
  • A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops.
  • extensibility - A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality.
  • non-modifiable framework code - The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.

There are different types of software frameworks: conceptual, application, domain, platform, component, service, development, etc

In Java technology there are many frameworks that helps the programmers to build complex application. You have tools like Maven to aggregate frameworks together to build complex application without reinventing the wheel.

Source : wikipedia

Framework categories

Persistence frameworks in Java

Apache Open JPA

Apache OpenJPA is a Java persistence project at The Apache Software Foundation that can be used as a stand-alone POJO persistence layer or integrated into any Java EE compliant container and many other lightweight frameworks, such as Tomcat and Spring.

Hibernate

Historically, Hibernate facilitated the storage and retrieval of Java domain objects via Object/Relational Mapping. Today, Hibernate is a collection of related projects enabling developers to utilize POJO-style domain models in their applications in ways extending well beyond Object/Relational Mapping.

Castor

Castor is an Open Source data binding framework for Java. It's the shortest path between Java objects, XML documents and relational tables. Castor provides Java-to-XML binding, Java-to-SQL persistence, and more.

Java Ultra-Lite Persistence

JULP is an ultra lite object-relational mapping framework (220KB)

JDBM

JDBM is a transactional persistence engine for Java. It aims to be for Java what GDBM is for other languages (C/C++, Python, Perl, etc.): a fast, simple persistence engine. You can use it to store a mix of objects and BLOBs, and all updates are done in a transactionally safe manner. JDBM also provides scalable data structures, such as HTree and B+Tree, to support persistence of large object collections.

Speedo

Speedo is an open source implementation of the JDO (TM) specification.


Tags: java , software , framework , open , source , persistence , frameworks , providing , jdbm