Spring , Hibernate and Web Services

advertisement
Spring , Hibernate and Web Services
13th September 2014
Software Framework
 Refers to set of libraries or classes, which are used in the creation of
an application.
 An application framework provides a foundation for developing the
application and alleviates from putting additional efforts for it.
 Techniques used in framework
 Configuration files
 Central Controller
 Presentation System
What does Spring offer?
 Dependency Injection
 Also known as IoC (Inversion of Control)
 Inversion of control takes the integration and configuration of the
system out of the application, and instead performs dependency
injection.
 Aspect Oriented Programming
 Runtime injection-based
 Service Abstractions
 ORM, DAO, Web MVC etc.
 Allows access to these without knowing how they actually work
 Open source project on SourceForge
 founded by Rod Johnson & Jürgen Höller
 Apache license
What does Spring offer?
 Enable applications to be coded from POJOs
 Allow enterprise services to be applied to those POJOs in a
declarative, non-invasive way
 POJOs can be made transactional without the need to know
about transaction APIs
 Collaborating instances are injected using plain Java constructors
or setter methods
 True POJOs are testable in isolation
 Decouples your application objects from their environment
 Switch to global transactions over JTA
 Export your business objects in different environments
 Switch between SLSB, web service etc.
What does Spring offer?


Core Lightweight Container(The heart of Spring)
Aspect-Oriented Programming (AOP) framework


Modularizes behavior that would otherwise be scattered through
different methods
Decorates your POJOs with cross-cutting behavior in a
transparent manner
 Container instantiates objects and injects dependencies on
collaborating objects and configuration properties through Java
methods
 Uses Hollywood Principle - “Don’t call me, I’ll call you”
Benefits
 Portability
 Your core business logic is implemented once and runs anywhere
 Leverage
 Your core code is decoupled from volatile infrastructure
 Consistency
 Common configuration strategy everywhere
 Productivity
 Test-driven development
 Don’t need to reinvent your own infrastructure
Struts Vs Spring - MVC
Spring
• A model-view-controller
framework
• Made to simplify the writing and
testing
• Fully integrates with the Spring
dependency
injection framework
• Open Source
• All other Spring features can also
be used with other web
frameworks such as Struts or JSF
Struts
• A model-view-controller
framework
• Made to simplify the writing
• Open Source
• Difficult to set up RESTful web
services
• No control on Model layer
Spring Modules
Remote
exporters
JSP, JSF,Velocity,
Jasper Reports…
Presentation
tier
Service objects / Business
Facades
DAO interfaces
DAO implementations
Middle tier
RDBMS
Domain objects
Dependency Injection
 Example:
public class Department{
private Employee employee;
public Department(Employee
emp) {
employee= emp;
}
}
Characteristics
 Cons
 You must create dependencies to pass
along
 Pros
 Easy to understand
 Testable
 Flexible
 Extensible
 Enforces separation of interface from
implementation
 Code is simple and clear
Spring is a framework for wiring up your entire application
What does hibernate offer?
 Open Source light-weight ORM solution
 Java Object/Relational Mapping, Maps JavaBeans (POJOs) to





tables,
Lets you avoid SQL
Works with (almost) all relational Databases, Easy migration from
one vendor database to another
Hibernate generates the JDBC Code based on the underlying
vendor database
Support CRUD (Create, Read, Update and Delete) operations
Very well matured and adopted by a large developer community
ORM – Hibernate Introduction
 Traditional Solutions
 JDBC/SQL code embedded in Class, EJB (J2EE) solution etc.
 More coding, container dependent etc. are the issues
 Best practice would be to keep the Persistence separate from classes
Webservice Introduction
 SOA is a software design principle and an architectural pattern for
implementing loosely coupled, reusable and coarse grained services.
You can implement SOA using any protocols such as HTTP, HTTPS,
JMS. Messages can be in XML or Data Transfer Objects (DTOs).
 Web service is an implementation technology and one of the ways
to implement SOA.
 Web services offer is the standards based and platform-independent
service via HTTP, XML, SOAP, WSDL and UDDI, thus allowing
interoperability between heterogeneous technologies such as J2EE
and .NET
Webservice Introduction
 Web Services support loosely coupled connections.
 The loosely coupled applications reduce the cost of maintenance
and increases re-usability.
 Web Services present a new form of middle-ware based on XML
and HTTP.
 Web services are language and platform independent.
 Styles of Web Services used for application integration
 SOAP WS and RESTful Web Service
Webservice Integration
Q&A
Download