SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
What is Spring?
Spring performs two major roles for a Java application.
First Spring is a container that manages all or some of the objects used by the application. Behind the
scenes Spring configures your objects with what they need to in order to perform their roles in the
application. If you need a Data Access Object, you ask the Spring container to provide one that is
already configured with values for its data source and other properties.
Spring is also a framework because it provides libraries of classes that make it easier to accomplish
common tasks such as transaction management, database integration, email, and web applications.
What does Spring provide ?
Spring is a lightweight framework. Most of your Java classes will have nothing about Spring in their
source code. This means that you can easily transition your application from the Spring framework to
something else. It also means that transferring an existing application to use the Spring framework
doesn’t have to mean a complete code rewrite.
All Java applications that consist of multiple classes have inter-dependencies or coupling between
classes. Spring helps us develop applications that minimize the negative effects of coupling and
encourages the use of interfaces in application development. Using interfaces in our applications to
specify type helps make our applications easier to maintain and enhance later.
The Spring framework helps developers clearly separate responsibilities. Many Java applications suffer
from class bloat – that is a class that has too many responsibilities. For example a service class that
is also logging information about what its doing. Think of two situations – one is you’ve been told by
your supervisor to do your normal work but also to write down everything you do and how long it
takes you. You’d be even busier and less responsive.
A better situation would be you do your normal work, but another person observers what you’re doing
and records it and measures how long it took. Even better would be if you were totally unaware of
that other person and that other person was able to also observe and record other people’s work and
time.
What are the modules Spring Provides ?
 The Core package is the most fundamental part of the framework and provides the IoC and
Dependency Injection features. The basic concept here is the BeanFactory, which provides a
sophisticated implementation of the factory pattern which removes the need for programmatic
singletons and allows you to decouple the configuration and specification of dependencies from
your actual program logic.
 The Context package build on the solid base provided by the Core package: it provides a way
to access objects in a framework-style manner in a fashion somewhat reminiscent of a JNDI-
registry. The context package inherits its features from the beans package and adds support
for internationalization (I18N) (using for example resource bundles), event-propagation,
resource-loading, and the transparent creation of contexts by, for example, a servlet
container.
 The DAO package provides a JDBC-abstraction layer that removes the need to do tedious
JDBC coding and parsing of database-vendor specific error codes. Also, the JDBC package
provides a way to do programmatic as well as declarative transaction management, not only
for classes implementing special interfaces, but for all your POJOs (plain old Java objects).
 The ORM package provides integration layers for popular object-relational mapping APIs,
including JPA, JDO, Hibernate, and iBatis. Using the ORM package you can use all those O/R-
mappers in combination with all the other features Spring offers, such as the simple
declarative transaction management feature mentioned previously.
 Spring's AOP package provides an AOP Alliance-compliant aspect-oriented programming
implementation allowing you to define, for example, method-interceptors and pointcuts to
cleanly decouple code implementing functionality that should logically speaking be separated.
Using source-level metadata functionality you can also incorporate all kinds of behavioral
information into your code, in a manner similar to that of .NET attributes.
 Spring's Web package provides basic web-oriented integration features, such as multipart file-
upload functionality, the initialization of the IoC container using servlet listeners and a web-
oriented application context. When using Spring together with WebWork or Struts, this is the
package to integrate with.
 Spring's MVC package provides a Model-View-Controller (MVC) implementation for web-
applications. Spring's MVC framework is not just any old implementation; it provides a clean
separation between domain model code and web forms, and allows you to use all the other
features of the Spring Framework.
What are the benefits of Spring Framework?
 Not a J2EE container. Doesn’t compete with J2EE app servers. Simply provides alternatives.
 POJO-based, non-invasive framework which allows a la carte usage of its components.
 Promotes decoupling and reusability
 Reduces coding effort and enforces design discipline by providing out-of-box implicit pattern
implementations such as singleton, factory, service locator etc.
 Removes common code issues like leaking connections and more
 Support for declarative transaction management
 Easy integration with third party tools and technologies.
What is Inversion of Control ?
 Instead of objects invoking other objects, the dependant objects are added through an
external entity/container.
 Also known as the Hollywood principle – “don’t call me I will call you”
 Dependency injection
o Dependencies are “injected” by container during runtime.
o Beans define their dependencies through constructor arguments or properties
 Prevents hard-coded object creation and object/service lookup.
 Loose coupling
 Helps write effective unit tests
Explain the Spring Bean Definition ?
 The bean class is the actual implementation of the bean being described by the BeanFactory.
 Bean examples – DAO, DataSource, Transaction Manager, Persistence Managers, Service
objects, etc
 Spring config contains implementation classes while your code should program to interfaces.
 Bean behaviors include:
o Singleton or prototype
o Autowiring
o Initialization and destruction methods
 init-method
 destroy-method
 Beans can be configured to have property values set.
o Can read simple values, collections, maps, references to other beans, etc.
Explain Spring BeanFactory ?
BeanFactory is core to the Spring framework
 Lightweight container that loads bean definitions and manages your
beans.
 Configured declaratively using an XML file, or files, that determine how
beans can be referenced and wired together.
 Knows how to serve and manage a singleton or prototype defined
bean
 Responsible for lifecycle methods.
 Injects dependencies into defined beans when served
 Removes the need for ad-hoc singletons and factories
Explain the Spring ApplicationContext ?
 A Spring ApplicationContext allows you to get access to the objects
that are configured in a BeanFactory in a framework manner.
 ApplicationContext extends BeanFactory
o Adds services such as international messaging capabilities.
o Add the ability to load file resources in a generic fashion.
 Several ways to configure a context:
o XMLWebApplicationContext – Configuration for a web
application.
o ClassPathXMLApplicationContext – standalone XML
application context
o FileSystemXmlApplicationContext
 Allows you to avoid writing Service Locators
How Spring Support Struts?
 ContextLoaderPlugin
o Loads a Spring application context for the Struts ActionServlet.
o Struts Actions are managed as Spring beans.
 ActionSupport and DispatchActionSupport
o Pre-built convenience classes to provide access to the context.
o Provides methods in superclass for easy context lookup.
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>
Explain Transaction Management in Spring ?
1. DataSourceTransactionManager - PlatformTransactionManager
implementation for single JDBC data sources. Binds a JDBC connection from
the specified data source to the thread, potentially allowing for one thread
connection per data source.
2. HibernateTransactionManager- PlatformTransactionManager
implementation for single Hibernate session factories. Binds a Hibernate
Session from the specified factory to the thread, potentially allowing for one
thread Session per factory. SessionFactoryUtils and HibernateTemplate are
aware of thread-bound Sessions and participate in such transactions
automatically. Using either is required for Hibernate access code that needs
to support this transaction handling mechanism.
3. JdoTransactionManager - PlatformTransactionManager implementation
for single JDO persistence manager factories. Binds a JDO
PersistenceManager from the specified factory to the thread, potentially
allowing for one thread PersistenceManager per factory.
PersistenceManagerFactoryUtils and JdoTemplate are aware of thread-bound
persistence managers and take part in such transactions automatically.
Using either is required for JDO access code supporting this transaction
management mechanism.
4. JtaTransactionManager - PlatformTransactionManager implementation
for JTA, i.e. J2EE container transactions. Can also work with a locally
configured JTA implementation. This transaction manager is appropriate for
handling distributed transactions, i.e. transactions that span multiple
resources, and for managing transactions on a J2EE Connector (e.g. a
persistence toolkit registered as JCA Connector).
Explian some of the DAO Support classes in Spring Framework ?
 JdbcDaoSupport
o Provides callback methods for row iteration
 HibernateDaoSupport
o Initializes Hibernate session factory
o Provides templates to invoke Hibernate API or the session
 SqlMapDaoSupport
o Provides template for iBatis SQLMaps
o Support similar to Hibernate template
What is Spring MVC?
A single shared controller instance handles a particular request type
controllers, interceptors run in the IoC container
Allows multiple DispatcherServlets that can share an “application context”
Interface based not class-based
What is bean in Spring ? How beans created and injected ?
Posted in: Spring Framework
What is a bean in Spring ?
 Typical java bean with a unique id
 Typically defined in an XML file
 In spring there are basically two types
o Singleton : One instance of the bean created and referenced
each time it is requested
o Prototype (non-singleton) : New bean created each time. Same
as new ClassName()
 Beans are normally created by Spring as late as possible
Example:
<bean id="exampleBean" class=”org.example.ExampleBean">
<property name="beanOne">
<ref bean="anotherExampleBean"/>
</property>
<property name="beanTwo">
<ref bean="yetAnotherBean"/>
</property>
<property name="integerProperty">
<value>1</value>
</property>
</bean>
How are beans created ?
 Beans are created in order based on the dependency graph
o Often they are created when the factory loads the definitions
o Can override this behavior in bean <bean class=“className”
lazy-init=“true” />
o You can also override this in the factory or context but this is not
recommended
 Spring will instantiate beans in the order required by their
dependencies
o app scope singleton - eagerly instantiated at container startup
o lazy dependency - created when dependent bean created
o VERY lazy dependency - created when accessed in code
How are beans injected ?
 A dependency graph is constructed based on the various bean
definitions
 Beans are created using constructors (mostly no-arg) or factory
methods
 Dependencies that were not injected via constructor are then injected
using setters
 Any dependency that has not been created is created as needed
When to choose Spring AOP and AspectJ AOP ?
Posted in: Spring Framework
Use Spring AOP when
 Method-only interception is sufficient
 Full power of AOP overwhelming
 Performance needs are less stringent
 Don’t want to use special compiler
 Domain object’s don’t need to be crosscutted
 Pre-written aspects meet your needs
Otherwise we use AspectJ AOP
Make sure to activate your subscription by clicking on the activation link sent to your email
What is difference between Anonymous vs ID in Spring Bean ?
Posted in: Spring Framework
Beans that do not need to be referenced elsewhere can be defined
anonymously
This bean is identified (has an id) and can be accessed to inject it into
another bean
<bean id="exampleBean" class="org.example.ExampleBean">
<property name="anotherBean" ref="someOtherBean" />
</bean>
This bean is anonymous (no id)
<bean class="org.example.ExampleBean">
<property name="anotherBean" ref="someOtherBean" />
</bean>
What are the types of Executor Interfaces ?
Posted in: Spring Framework
The java.util.concurrent package defines three Executor Interfaces :
1. Executor : a simple Interface that supports launching new tasks.
2. ExecutorService : A subinterface of Executor, which adds features that help manage the
lifecycle, both of the individual tasks and of the Executor itself.
3. ScheduledExecutorService : a subinterface of ExecutorService, supports future and/or
periodic execution of tasks.
Introduction to the Java Persistence API
Posted in: Hibernate,JPA,Spring Framework
The Java Persistence API provides Java developers with an object/relational mapping facility for
managing relational data in Java applications. Java Persistence consists of four areas:
 The Java Persistence API
 The query language
 The Java Persistence Criteria API
 Object/relational mapping metadata
The following topics are addressed here:
 Entities
 Entity Inheritance
 Managing Entities
 Querying Entities
 Further Information about Persistence
Entities
An entity is a lightweight persistence domain object. Typically, an entity represents a table in a
relational database, and each entity instance corresponds to a row in that table. The primary
programming artifact of an entity is the entity class, although entities can use helper classes.
The persistent state of an entity is represented through either persistent fields or persistent
properties. These fields or properties use object/relational mapping annotations to map the entities
and entity relationships to the relational data in the underlying data store.
Requirements for Entity Classes
An entity class must follow these requirements.
The class must be annotated with the javax.persistence.Entity annotation.
The class must have a public or protected, no-argument constructor. The class may have other
constructors.
The class must not be declared final. No methods or persistent instance variables must be declared
final.
If an entity instance is passed by value as a detached object, such as through a session bean’s remote
business interface, the class must implement the Serializable interface.
Entities may extend both entity and non-entity classes, and non-entity classes may extend entity
classes.
Persistent instance variables must be declared private, protected, or package-private and can be
accessed directly only by the entity class’s methods. Clients must access the entity’s state through
accessor or business methods.
Persistent Fields and Properties in Entity Classes
The persistent state of an entity can be accessed through either the entity’s instance variables or
properties. The fields or properties must be of the following Java language types:
Java primitive types
java.lang.String
Other serializable types, including:
Wrappers of Java primitive types
java.math.BigInteger
java.math.BigDecimal
java.util.Date
java.util.Calendar
java.sql.Date
java.sql.Time
java.sql.TimeStamp
User-defined serializable types
byte[]
Byte[]
char[]
Character[]
Enumerated types
Other entities and/or collections of entities
Embeddable classes
Entities may use persistent fields, persistent properties, or a combination of both. If the mapping
annotations are applied to the entity’s instance variables, the entity uses persistent fields. If the
mapping annotations are applied to the entity’s getter methods for JavaBeans-style properties, the
entity uses persistent properties.
Persistent Fields
If the entity class uses persistent fields, the Persistence runtime accesses entity-class instance
variables directly. All fields not annotated javax.persistence.Transient or not marked as Java transient
will be persisted to the data store. The object/relational mapping annotations must be applied to the
instance variables.
Persistent Properties
If the entity uses persistent properties, the entity must follow the method conventions of JavaBeans
components. JavaBeans-style properties use getter and setter methods that are typically named after
the entity class’s instance variable names. For every persistent property property of type Type of the
entity, there is a getter method getProperty and setter method setProperty. If the property is a
Boolean, you may use isProperty instead of getProperty. For example, if a Customer entity uses
persistent properties and has a private instance variable called firstName, the class defines a
getFirstName and setFirstName method for retrieving and setting the state of the firstName instance
variable.
The method signature for single-valued persistent properties are as follows:
Type getProperty()
void setProperty(Type type)
The object/relational mapping annotations for persistent properties must be applied to the getter
methods. Mapping annotations cannot be applied to fields or properties annotated @Transient or
marked transient.
Purpose of the ApplicationContext in Spring
Posted in: ApplicationContext In Spring,Bean Lifecycle in Spring,Bean scopes in Spring,Spring Framework,Spring IoC
While the beans package provides basic functionality for managing and manipulating beans, often in a
programmatic way, the context package adds ApplicationContext, which enhances BeanFactory
functionality in a more framework-oriented style.
A bean factory is fine for simple applications, but to take advantage of the full power of the Spring
Framework, you’ll probably want to load your application beans using Spring’s more advanced
container, the application context.
Many users will use ApplicationContext in a completely declarative fashion, not even having to create
it manually, but instead relying on support classes such as ContextLoader to automatically start an
ApplicationContext as part of the normal startup process of a J2EE web-app. Of course, it is still
possible to programmatically create an ApplicationContext.
The basis for the context package is the ApplicationContext interface, located in the
org.springframework.context package. Deriving from the BeanFactory interface, it provides all the
functionality of BeanFactory.
You could also implement your own ApplicationContext and add support for loading from other
resources (such as a database). While many Contexts are available for loading beans, you’ll only need
a few, which are listed below. The others are internal classes that are used by the framework itself.
1 ) ClassPathXmlApplicationContext: Loads context files from the classpath (that is, WEB-
INF/classes or WEB-INF/lib for JARs) in a web application. Initializes using a
new ClassPathXmlApplicationContext(path)
where path is the path to the file.
2 ) FileSystemXmlApplicationContext: Loads context files from the file system, which is nice for
testing. Initializes using a
new FileSystemXmlApplicationContext (path)
where path is a relative or absolute path to the file. The path argument can also be a String array of
paths.
3. XmlWebApplicationContext: Loads context files internally by the ContextLoaderListener, but can
be used outside of it. For instance, if you are running a container that doesn’t load Listeners in the
order specified in web.xml, you may have to use this in another Listener. Below is the code to use this
Loader.
?
1
2
3
4
XmlWebApplicationContext context =
new XmlWebApplicationContext();
context.setServletContext(ctx);
context.refresh();
Once you’ve obtained a reference to a context, you can get references to beans using
ctx.getBean(“beanId”)
You will need to cast it to a specific type, but that’s the easy part. Of the above contexts,
ClassPathXmlApplicationContext is the most flexible. It doesn’t care where the files are, as long as
they’re in the classpath. This allows you to move files around and simply change the classpath.

Aspect-Oriented Programming(AOP) in Spring - Part 1
Posted in: AOP,Spring Framework,Spring IoC
Aspect-Oriented Programming (AOP) Introduction :
AOP is a new methodology that provides separation of crosscutting concerns by introducing a new unit
of modularization—an aspect—that crosscuts other modules. With AOP you implement crosscutting
concerns in aspects instead of fusing them in the core modules. An aspect weaver, which is a
compiler-like entity, composes the final system by combining the core and crosscutting modules
through a process called weaving.
Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing
another way of thinking about program structure. The key unit of modularity in OOP is the class,
whereas in AOP the unit of modularity is the aspect.
AOP Fundamentals:
 Aspect-oriented programming (AOP) provides for simplified application of cross-cutting
concerns.
o Transaction management
o Security
o Logging
o Auditing
o Locking
 AOP sometimes (partially) achieved via Decorators or Proxies
o CORBA Portable Interceptors
o Servlet Filters
 Aspect : Implementation of a cross-cutting concern.
 Spring Advisors or Interceptors
 Joinpoint : Execution point to target
o Typically, methods
 Advice : Action taken at a particular joinpoint.
 Pointcut : A set of joinpoints specifying where advice should be applied (e.g. Regular
expression)
 Introduction/Mixin - Adding methods or fields to an advised class.
 Weaving : Assembling aspects into advised objects.

Installing Spring IDE Plugin in Eclipse using update site
Posted in: Plugins,Spring Framework
Prerequisites
Before starting ensure that you have the following installed:
 Eclipse 3.3 with WTP - http://www.eclipse.org/downloads/moreinfo/jee.php
 Spring Framework - http://www.springframework.org/download
For completeness, it's best if you install the version with depedencies
If you know how to install eclipse plugin, use the Eclipse Software Update wizard to go to the
SpringIDE update site to download the latest version (http://springide.org/updatesite). Otherwise you
can follow the tutorial.
Spring IDE
Spring IDE is an eclipse plug-in that helps in developing Spring Application. First we will see how to
install the Spring IDE and later we will create our first Spring project using it.
To install Spring IDE, Go to Help -> Software Updates.
Click the "Add Site" button and enter "http://springide.org/updatesite" in the Add Site popup.
Select all the Spring IDE features and click Install.
Java bean calls :
?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.javastuff.spring;
public class SpringExample {
public String message;
/**
* @return the message
*/
public String getMessage() {
return message;
}
/**
* @param message
* the message to set
*/
14
15
16
17
18
19
20
public void setMessage(String message) {
this.message = message;
}
}
ApplicationContext.xml
?
1
2
3
4
5
6
7
8
9
10
11
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="springExample" class="com.javastuff.spring.SpringExample">
<property name="message" value="Hello Friend, Welcome To Javastuff !!!! "/>
</bean>
</beans>
TestClass.Java
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.javastuff.Test;
import org.springframework.beans.factory.BeanFactory;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import com.javastuff.spring.SpringExample;
public class TestClass {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext(
"ApplicationContext.xml");
SpringExample se = (SpringExample)
factory.getBean("springExample");
System.out.println(" Message : " + se.getMessage());
}
}
OutPut:
Message : Hello Friend, Welcome To Javastuff !!!!

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by RohitRohit Prabhakar
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jSatya Johnny
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginnersRahul Jain
 
Spring core module
Spring core moduleSpring core module
Spring core moduleRaj Tomar
 
Spring hibernate tutorial
Spring hibernate tutorialSpring hibernate tutorial
Spring hibernate tutorialRohit Jagtap
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Examplekamal kotecha
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Hibernate Interview Questions | Edureka
Hibernate Interview Questions | EdurekaHibernate Interview Questions | Edureka
Hibernate Interview Questions | EdurekaEdureka!
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 

Was ist angesagt? (20)

Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Hibernate tutorial for beginners
Hibernate tutorial for beginnersHibernate tutorial for beginners
Hibernate tutorial for beginners
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring survey
Spring surveySpring survey
Spring survey
 
Hibernate I
Hibernate IHibernate I
Hibernate I
 
Spring core module
Spring core moduleSpring core module
Spring core module
 
Spring hibernate tutorial
Spring hibernate tutorialSpring hibernate tutorial
Spring hibernate tutorial
 
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and ExampleJava Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
 
Spring jdbc dao
Spring jdbc daoSpring jdbc dao
Spring jdbc dao
 
Spring Framework-II
Spring Framework-IISpring Framework-II
Spring Framework-II
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Hibernate Interview Questions | Edureka
Hibernate Interview Questions | EdurekaHibernate Interview Questions | Edureka
Hibernate Interview Questions | Edureka
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Overview of JEE Technology
Overview of JEE TechnologyOverview of JEE Technology
Overview of JEE Technology
 
TY.BSc.IT Java QB U6
TY.BSc.IT Java QB U6TY.BSc.IT Java QB U6
TY.BSc.IT Java QB U6
 

Ähnlich wie Spring 2

TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFrameworkShankar Nair
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkDineesha Suraweera
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2javatrainingonline
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsVirtual Nuggets
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Spring (1)
Spring (1)Spring (1)
Spring (1)Aneega
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.suranisaunak
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorialvinayiqbusiness
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkASG
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptxNourhanTarek23
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworksMukesh Kumar
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework IntroductionAnuj Singh Rajput
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malavRohit malav
 
Spring framework
Spring frameworkSpring framework
Spring frameworkKani Selvam
 

Ähnlich wie Spring 2 (20)

TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggets
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Spring (1)
Spring (1)Spring (1)
Spring (1)
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Java spring ppt
Java spring pptJava spring ppt
Java spring ppt
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworks
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
P20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptxP20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptx
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malav
 
Spring framework
Spring frameworkSpring framework
Spring framework
 

Kürzlich hochgeladen

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Kürzlich hochgeladen (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Spring 2

  • 1. What is Spring? Spring performs two major roles for a Java application. First Spring is a container that manages all or some of the objects used by the application. Behind the scenes Spring configures your objects with what they need to in order to perform their roles in the application. If you need a Data Access Object, you ask the Spring container to provide one that is already configured with values for its data source and other properties. Spring is also a framework because it provides libraries of classes that make it easier to accomplish common tasks such as transaction management, database integration, email, and web applications. What does Spring provide ? Spring is a lightweight framework. Most of your Java classes will have nothing about Spring in their source code. This means that you can easily transition your application from the Spring framework to something else. It also means that transferring an existing application to use the Spring framework doesn’t have to mean a complete code rewrite. All Java applications that consist of multiple classes have inter-dependencies or coupling between classes. Spring helps us develop applications that minimize the negative effects of coupling and encourages the use of interfaces in application development. Using interfaces in our applications to specify type helps make our applications easier to maintain and enhance later. The Spring framework helps developers clearly separate responsibilities. Many Java applications suffer from class bloat – that is a class that has too many responsibilities. For example a service class that is also logging information about what its doing. Think of two situations – one is you’ve been told by your supervisor to do your normal work but also to write down everything you do and how long it takes you. You’d be even busier and less responsive. A better situation would be you do your normal work, but another person observers what you’re doing and records it and measures how long it took. Even better would be if you were totally unaware of that other person and that other person was able to also observe and record other people’s work and time. What are the modules Spring Provides ?  The Core package is the most fundamental part of the framework and provides the IoC and Dependency Injection features. The basic concept here is the BeanFactory, which provides a sophisticated implementation of the factory pattern which removes the need for programmatic singletons and allows you to decouple the configuration and specification of dependencies from your actual program logic.  The Context package build on the solid base provided by the Core package: it provides a way to access objects in a framework-style manner in a fashion somewhat reminiscent of a JNDI- registry. The context package inherits its features from the beans package and adds support for internationalization (I18N) (using for example resource bundles), event-propagation, resource-loading, and the transparent creation of contexts by, for example, a servlet container.  The DAO package provides a JDBC-abstraction layer that removes the need to do tedious JDBC coding and parsing of database-vendor specific error codes. Also, the JDBC package provides a way to do programmatic as well as declarative transaction management, not only for classes implementing special interfaces, but for all your POJOs (plain old Java objects).  The ORM package provides integration layers for popular object-relational mapping APIs, including JPA, JDO, Hibernate, and iBatis. Using the ORM package you can use all those O/R- mappers in combination with all the other features Spring offers, such as the simple declarative transaction management feature mentioned previously.
  • 2.  Spring's AOP package provides an AOP Alliance-compliant aspect-oriented programming implementation allowing you to define, for example, method-interceptors and pointcuts to cleanly decouple code implementing functionality that should logically speaking be separated. Using source-level metadata functionality you can also incorporate all kinds of behavioral information into your code, in a manner similar to that of .NET attributes.  Spring's Web package provides basic web-oriented integration features, such as multipart file- upload functionality, the initialization of the IoC container using servlet listeners and a web- oriented application context. When using Spring together with WebWork or Struts, this is the package to integrate with.  Spring's MVC package provides a Model-View-Controller (MVC) implementation for web- applications. Spring's MVC framework is not just any old implementation; it provides a clean separation between domain model code and web forms, and allows you to use all the other features of the Spring Framework. What are the benefits of Spring Framework?  Not a J2EE container. Doesn’t compete with J2EE app servers. Simply provides alternatives.  POJO-based, non-invasive framework which allows a la carte usage of its components.  Promotes decoupling and reusability  Reduces coding effort and enforces design discipline by providing out-of-box implicit pattern implementations such as singleton, factory, service locator etc.  Removes common code issues like leaking connections and more  Support for declarative transaction management  Easy integration with third party tools and technologies. What is Inversion of Control ?  Instead of objects invoking other objects, the dependant objects are added through an external entity/container.  Also known as the Hollywood principle – “don’t call me I will call you”  Dependency injection o Dependencies are “injected” by container during runtime. o Beans define their dependencies through constructor arguments or properties  Prevents hard-coded object creation and object/service lookup.  Loose coupling  Helps write effective unit tests Explain the Spring Bean Definition ?  The bean class is the actual implementation of the bean being described by the BeanFactory.  Bean examples – DAO, DataSource, Transaction Manager, Persistence Managers, Service objects, etc  Spring config contains implementation classes while your code should program to interfaces.  Bean behaviors include: o Singleton or prototype o Autowiring o Initialization and destruction methods  init-method  destroy-method  Beans can be configured to have property values set. o Can read simple values, collections, maps, references to other beans, etc. Explain Spring BeanFactory ?
  • 3. BeanFactory is core to the Spring framework  Lightweight container that loads bean definitions and manages your beans.  Configured declaratively using an XML file, or files, that determine how beans can be referenced and wired together.  Knows how to serve and manage a singleton or prototype defined bean  Responsible for lifecycle methods.  Injects dependencies into defined beans when served  Removes the need for ad-hoc singletons and factories Explain the Spring ApplicationContext ?  A Spring ApplicationContext allows you to get access to the objects that are configured in a BeanFactory in a framework manner.  ApplicationContext extends BeanFactory o Adds services such as international messaging capabilities. o Add the ability to load file resources in a generic fashion.  Several ways to configure a context: o XMLWebApplicationContext – Configuration for a web application. o ClassPathXMLApplicationContext – standalone XML application context o FileSystemXmlApplicationContext  Allows you to avoid writing Service Locators How Spring Support Struts?  ContextLoaderPlugin o Loads a Spring application context for the Struts ActionServlet. o Struts Actions are managed as Spring beans.  ActionSupport and DispatchActionSupport o Pre-built convenience classes to provide access to the context. o Provides methods in superclass for easy context lookup. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>
  • 4. Explain Transaction Management in Spring ? 1. DataSourceTransactionManager - PlatformTransactionManager implementation for single JDBC data sources. Binds a JDBC connection from the specified data source to the thread, potentially allowing for one thread connection per data source. 2. HibernateTransactionManager- PlatformTransactionManager implementation for single Hibernate session factories. Binds a Hibernate Session from the specified factory to the thread, potentially allowing for one thread Session per factory. SessionFactoryUtils and HibernateTemplate are aware of thread-bound Sessions and participate in such transactions automatically. Using either is required for Hibernate access code that needs to support this transaction handling mechanism. 3. JdoTransactionManager - PlatformTransactionManager implementation for single JDO persistence manager factories. Binds a JDO PersistenceManager from the specified factory to the thread, potentially allowing for one thread PersistenceManager per factory. PersistenceManagerFactoryUtils and JdoTemplate are aware of thread-bound persistence managers and take part in such transactions automatically. Using either is required for JDO access code supporting this transaction management mechanism. 4. JtaTransactionManager - PlatformTransactionManager implementation for JTA, i.e. J2EE container transactions. Can also work with a locally configured JTA implementation. This transaction manager is appropriate for handling distributed transactions, i.e. transactions that span multiple resources, and for managing transactions on a J2EE Connector (e.g. a persistence toolkit registered as JCA Connector). Explian some of the DAO Support classes in Spring Framework ?  JdbcDaoSupport o Provides callback methods for row iteration  HibernateDaoSupport o Initializes Hibernate session factory o Provides templates to invoke Hibernate API or the session  SqlMapDaoSupport o Provides template for iBatis SQLMaps o Support similar to Hibernate template What is Spring MVC?
  • 5. A single shared controller instance handles a particular request type controllers, interceptors run in the IoC container Allows multiple DispatcherServlets that can share an “application context” Interface based not class-based What is bean in Spring ? How beans created and injected ? Posted in: Spring Framework What is a bean in Spring ?  Typical java bean with a unique id  Typically defined in an XML file  In spring there are basically two types o Singleton : One instance of the bean created and referenced each time it is requested o Prototype (non-singleton) : New bean created each time. Same as new ClassName()  Beans are normally created by Spring as late as possible Example: <bean id="exampleBean" class=”org.example.ExampleBean"> <property name="beanOne"> <ref bean="anotherExampleBean"/> </property> <property name="beanTwo"> <ref bean="yetAnotherBean"/> </property> <property name="integerProperty"> <value>1</value> </property> </bean> How are beans created ?  Beans are created in order based on the dependency graph o Often they are created when the factory loads the definitions o Can override this behavior in bean <bean class=“className” lazy-init=“true” /> o You can also override this in the factory or context but this is not recommended  Spring will instantiate beans in the order required by their dependencies
  • 6. o app scope singleton - eagerly instantiated at container startup o lazy dependency - created when dependent bean created o VERY lazy dependency - created when accessed in code How are beans injected ?  A dependency graph is constructed based on the various bean definitions  Beans are created using constructors (mostly no-arg) or factory methods  Dependencies that were not injected via constructor are then injected using setters  Any dependency that has not been created is created as needed When to choose Spring AOP and AspectJ AOP ? Posted in: Spring Framework Use Spring AOP when  Method-only interception is sufficient  Full power of AOP overwhelming  Performance needs are less stringent  Don’t want to use special compiler  Domain object’s don’t need to be crosscutted  Pre-written aspects meet your needs Otherwise we use AspectJ AOP Make sure to activate your subscription by clicking on the activation link sent to your email What is difference between Anonymous vs ID in Spring Bean ? Posted in: Spring Framework Beans that do not need to be referenced elsewhere can be defined anonymously This bean is identified (has an id) and can be accessed to inject it into another bean <bean id="exampleBean" class="org.example.ExampleBean"> <property name="anotherBean" ref="someOtherBean" /> </bean> This bean is anonymous (no id)
  • 7. <bean class="org.example.ExampleBean"> <property name="anotherBean" ref="someOtherBean" /> </bean> What are the types of Executor Interfaces ? Posted in: Spring Framework The java.util.concurrent package defines three Executor Interfaces : 1. Executor : a simple Interface that supports launching new tasks. 2. ExecutorService : A subinterface of Executor, which adds features that help manage the lifecycle, both of the individual tasks and of the Executor itself. 3. ScheduledExecutorService : a subinterface of ExecutorService, supports future and/or periodic execution of tasks. Introduction to the Java Persistence API Posted in: Hibernate,JPA,Spring Framework The Java Persistence API provides Java developers with an object/relational mapping facility for managing relational data in Java applications. Java Persistence consists of four areas:  The Java Persistence API  The query language  The Java Persistence Criteria API  Object/relational mapping metadata The following topics are addressed here:  Entities  Entity Inheritance  Managing Entities  Querying Entities  Further Information about Persistence Entities An entity is a lightweight persistence domain object. Typically, an entity represents a table in a relational database, and each entity instance corresponds to a row in that table. The primary programming artifact of an entity is the entity class, although entities can use helper classes. The persistent state of an entity is represented through either persistent fields or persistent properties. These fields or properties use object/relational mapping annotations to map the entities and entity relationships to the relational data in the underlying data store. Requirements for Entity Classes An entity class must follow these requirements. The class must be annotated with the javax.persistence.Entity annotation. The class must have a public or protected, no-argument constructor. The class may have other constructors.
  • 8. The class must not be declared final. No methods or persistent instance variables must be declared final. If an entity instance is passed by value as a detached object, such as through a session bean’s remote business interface, the class must implement the Serializable interface. Entities may extend both entity and non-entity classes, and non-entity classes may extend entity classes. Persistent instance variables must be declared private, protected, or package-private and can be accessed directly only by the entity class’s methods. Clients must access the entity’s state through accessor or business methods. Persistent Fields and Properties in Entity Classes The persistent state of an entity can be accessed through either the entity’s instance variables or properties. The fields or properties must be of the following Java language types: Java primitive types java.lang.String Other serializable types, including: Wrappers of Java primitive types java.math.BigInteger java.math.BigDecimal java.util.Date java.util.Calendar java.sql.Date java.sql.Time java.sql.TimeStamp User-defined serializable types byte[] Byte[] char[] Character[] Enumerated types Other entities and/or collections of entities Embeddable classes Entities may use persistent fields, persistent properties, or a combination of both. If the mapping annotations are applied to the entity’s instance variables, the entity uses persistent fields. If the mapping annotations are applied to the entity’s getter methods for JavaBeans-style properties, the entity uses persistent properties.
  • 9. Persistent Fields If the entity class uses persistent fields, the Persistence runtime accesses entity-class instance variables directly. All fields not annotated javax.persistence.Transient or not marked as Java transient will be persisted to the data store. The object/relational mapping annotations must be applied to the instance variables. Persistent Properties If the entity uses persistent properties, the entity must follow the method conventions of JavaBeans components. JavaBeans-style properties use getter and setter methods that are typically named after the entity class’s instance variable names. For every persistent property property of type Type of the entity, there is a getter method getProperty and setter method setProperty. If the property is a Boolean, you may use isProperty instead of getProperty. For example, if a Customer entity uses persistent properties and has a private instance variable called firstName, the class defines a getFirstName and setFirstName method for retrieving and setting the state of the firstName instance variable. The method signature for single-valued persistent properties are as follows: Type getProperty() void setProperty(Type type) The object/relational mapping annotations for persistent properties must be applied to the getter methods. Mapping annotations cannot be applied to fields or properties annotated @Transient or marked transient. Purpose of the ApplicationContext in Spring Posted in: ApplicationContext In Spring,Bean Lifecycle in Spring,Bean scopes in Spring,Spring Framework,Spring IoC While the beans package provides basic functionality for managing and manipulating beans, often in a programmatic way, the context package adds ApplicationContext, which enhances BeanFactory functionality in a more framework-oriented style. A bean factory is fine for simple applications, but to take advantage of the full power of the Spring Framework, you’ll probably want to load your application beans using Spring’s more advanced container, the application context. Many users will use ApplicationContext in a completely declarative fashion, not even having to create it manually, but instead relying on support classes such as ContextLoader to automatically start an ApplicationContext as part of the normal startup process of a J2EE web-app. Of course, it is still possible to programmatically create an ApplicationContext. The basis for the context package is the ApplicationContext interface, located in the org.springframework.context package. Deriving from the BeanFactory interface, it provides all the functionality of BeanFactory. You could also implement your own ApplicationContext and add support for loading from other resources (such as a database). While many Contexts are available for loading beans, you’ll only need a few, which are listed below. The others are internal classes that are used by the framework itself. 1 ) ClassPathXmlApplicationContext: Loads context files from the classpath (that is, WEB- INF/classes or WEB-INF/lib for JARs) in a web application. Initializes using a new ClassPathXmlApplicationContext(path) where path is the path to the file. 2 ) FileSystemXmlApplicationContext: Loads context files from the file system, which is nice for testing. Initializes using a
  • 10. new FileSystemXmlApplicationContext (path) where path is a relative or absolute path to the file. The path argument can also be a String array of paths. 3. XmlWebApplicationContext: Loads context files internally by the ContextLoaderListener, but can be used outside of it. For instance, if you are running a container that doesn’t load Listeners in the order specified in web.xml, you may have to use this in another Listener. Below is the code to use this Loader. ? 1 2 3 4 XmlWebApplicationContext context = new XmlWebApplicationContext(); context.setServletContext(ctx); context.refresh(); Once you’ve obtained a reference to a context, you can get references to beans using ctx.getBean(“beanId”) You will need to cast it to a specific type, but that’s the easy part. Of the above contexts, ClassPathXmlApplicationContext is the most flexible. It doesn’t care where the files are, as long as they’re in the classpath. This allows you to move files around and simply change the classpath.  Aspect-Oriented Programming(AOP) in Spring - Part 1 Posted in: AOP,Spring Framework,Spring IoC Aspect-Oriented Programming (AOP) Introduction : AOP is a new methodology that provides separation of crosscutting concerns by introducing a new unit of modularization—an aspect—that crosscuts other modules. With AOP you implement crosscutting concerns in aspects instead of fusing them in the core modules. An aspect weaver, which is a compiler-like entity, composes the final system by combining the core and crosscutting modules through a process called weaving. Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. AOP Fundamentals:  Aspect-oriented programming (AOP) provides for simplified application of cross-cutting concerns. o Transaction management o Security
  • 11. o Logging o Auditing o Locking  AOP sometimes (partially) achieved via Decorators or Proxies o CORBA Portable Interceptors o Servlet Filters  Aspect : Implementation of a cross-cutting concern.  Spring Advisors or Interceptors  Joinpoint : Execution point to target o Typically, methods  Advice : Action taken at a particular joinpoint.  Pointcut : A set of joinpoints specifying where advice should be applied (e.g. Regular expression)  Introduction/Mixin - Adding methods or fields to an advised class.  Weaving : Assembling aspects into advised objects.  Installing Spring IDE Plugin in Eclipse using update site Posted in: Plugins,Spring Framework Prerequisites Before starting ensure that you have the following installed:  Eclipse 3.3 with WTP - http://www.eclipse.org/downloads/moreinfo/jee.php  Spring Framework - http://www.springframework.org/download For completeness, it's best if you install the version with depedencies If you know how to install eclipse plugin, use the Eclipse Software Update wizard to go to the SpringIDE update site to download the latest version (http://springide.org/updatesite). Otherwise you can follow the tutorial. Spring IDE Spring IDE is an eclipse plug-in that helps in developing Spring Application. First we will see how to install the Spring IDE and later we will create our first Spring project using it. To install Spring IDE, Go to Help -> Software Updates. Click the "Add Site" button and enter "http://springide.org/updatesite" in the Add Site popup.
  • 12. Select all the Spring IDE features and click Install. Java bean calls : ? 1 2 3 4 5 6 7 8 9 10 11 12 13 package com.javastuff.spring; public class SpringExample { public String message; /** * @return the message */ public String getMessage() { return message; } /** * @param message * the message to set */
  • 13. 14 15 16 17 18 19 20 public void setMessage(String message) { this.message = message; } } ApplicationContext.xml ? 1 2 3 4 5 6 7 8 9 10 11 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="springExample" class="com.javastuff.spring.SpringExample"> <property name="message" value="Hello Friend, Welcome To Javastuff !!!! "/> </bean> </beans> TestClass.Java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package com.javastuff.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.javastuff.spring.SpringExample; public class TestClass { public static void main(String[] args) { BeanFactory factory = new ClassPathXmlApplicationContext( "ApplicationContext.xml"); SpringExample se = (SpringExample) factory.getBean("springExample"); System.out.println(" Message : " + se.getMessage()); } } OutPut: Message : Hello Friend, Welcome To Javastuff !!!!