TUTIORALS FROM MADHAV:
SPRING-AOP-ANNOTATIONS SPRING -DAO SPRIN-MVC SPRING-SECUTITY
Introduction to spring framework:
Spring is a multi-tier open-source lightweight application framework,
addressing most infrastructure concerns of enterprise applications.
It is mainly a technology dedicated to enale us to build
applications using POJOS.
That means spring framework provides support in simplifying
the development of every single tier in an
enterprise application.
For example:
Starting from the presentation to the integration tier(or
sometimes data access layer)implementation it has its role in simplifying our
obj.
Spring framework overview:
·
Spring core container:
·
AOP
·
JDBC AND DAO Module:
·
ORM Module
·
J2EE (JAVA Enterprise edition)
·
Web module
Inversion of control(IOC)
Inversion of control is an architectural pattern describing
an external entity(that is container)used to wire objects at creation time by injecting
there dependencies.
In other words the ioc describes that a dependency injection
needs to be done by an external entity instead of creating the dependencies by
the component itself.
Initializing spring core container and
accessing spring beans.
The spring core container can be instantiated by creating an
object of any one of the BeanFactoy or
ApplicationContext
implementation classes supplying the spring beans configurations.
//using the BeanFactory to instantiate spring core container
BeanFactory beans=new
XmlBeanFactory(new FileSystemResources(“spring.xml”);
//using applicationContext to instantiate spring core container
ApplicationContext context=new
ClassPathXmlApplicationContext(“spring.xml”);
Methods of BeanFactory:
Method
|
Description
|
Boolean
containsBean(String name)
|
If bean is
available this return ‘true’ otherwise
it retrns ‘false’
|
Object
getBean(String name)
|
Retrn an
instance that is instantiated using
the bean definition iidentified by the given name in this bean factoy.
|
Example programs 1:
//THIS EXAMPLE WILL
DESCRIBES GETTING SPRING BEANS FROM SPRING CONTAINER.
Shape.java
package
madhav.container;
public interface Shape {
public void draw();
}
Triangle.java
package
madhav.container;
public class Triangle implements Shape {
public void draw()
{
System.out.println("triangle");
}
}
Spring.xml
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="triangle"
class="madhav.container.Triangle"/>
</beans>
TestCase.java
package
madhav.container;
import
org.springframework.beans.factory.BeanFactory;
import
org.springframework.beans.factory.xml.XmlBeanFactory;
import
org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public static void main(String[]
args) {
// TODO
Auto-generated method stub
//testing the springcontainer
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Shape shape=(Shape)bf.getBean("triangle");
shape.draw();
}
}
Output:
triangle
Dependency
Injection
Java components / classes should be
as independent as possible of other Java classes. This increases the
possibility to reuse these classes and to test them independently of other
classes(Unit Testing). To decouple Java components from other Java components
the dependency to a certain other class should get injected into them rather
that the class itself creates / finds this object.
TYPES OF DEPENDENCY INJECTION:
·
Setter method injection
·
Constructor injection
Setter method Injection:
This is the most popular and simple DI method, it will injects the dependency via a setter method.
Example programs 2:
//THIS EXAMPLE WILL
DESCRIBES SETTING THE DEPENDENCIES BY
USING “SETTER METHOD INJECTION” .
point
|
Triangle
|
Point.java
package madhav.iocdep;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
package madhav.iocdep;
public class Triangle {
private Point pointa;
private Point pointb;
private Point pointc;
public Point
getPointa() {
return pointa;
}
public void setPointa(Point
pointa) {
this.pointa = pointa;
}
public Point
getPointb() {
return pointb;
}
public void setPointb(Point
pointb) {
this.pointb = pointb;
}
public Point
getPointc() {
return pointc;
}
public void setPointc(Point
pointc) {
this.pointc = pointc;
}
public void show()
{
System.out.printf("pointa=" + "(" + pointa.getX()+"," + pointa.getY()+ ")" +"\n" );
System.out.printf("pointb=" + "(" + pointb.getX()+"," + pointb.getY()+ ")" +"\n" );
System.out.printf("pointc=" + "(" + pointc.getX() +"," + pointc.getY()+ ")" +"\n" );
}
}
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
This is id of triangle instance for refereeing the out
side world .
|
<bean id="triangle"
class="madhav.iocdep.Triangle">
<property name="pointa"
ref="point1"></property>
<property name="pointb"
ref="point2"></property>
<property name="pointc"
ref="point3"></property>
</bean>
<bean id="point1"
class="madhav.iocdep.Point">
<property name="x"
value="0"></property>
<property name="y"
value="0"></property>
</bean>
<bean id="point2"
class="madhav.iocdep.Point">
<property name="x"
value="2"></property>
<property name="y"
value="5"></property>
</bean>
<bean id="point3"
class="madhav.iocdep.Point">
<property name="x"
value="6"></property>
<property name="y"
value="9"></property>
</bean>
</beans>
TestCase.java
package madhav.iocdep;
import
org.springframework.beans.factory.BeanFactory;
import
org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public
static void main(String[] args) {
//
TODO Auto-generated method stub
Id of “Triangle “instance maintained by spring container.
|
//test casse for iocdep(ioc dependency
setter based)
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle t=(Triangle)bf.getBean("triangle");
t.show();
}
}
Output:
pointa=(0,0)
pointb=(2,5)
pointc=(6,9)
Constructor injection:
The Constructor injection method of dependency is the method
of injecting the dependencies of an object through its constructor arguments.
Example programs 2:
//THIS EXAMPLE WILL
DESCRIBES SETTING THE DEPENDENCIES BY
USING “CONSTRUCTOR INJECTION” .
Point.java
package madhav.iocdep;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
THIS METHOD USED BY THE SPRING CONTAINER
FOR SETTING THE DEPEDENCE-“pointa”
|
Triangle.java
package madhav.iocdep;
public class Triangle {
private Point pointa;
public Triangle(Point pointa)
{
this.pointa=pointa;
}
public Point
getPointa() {
return pointa;
}
public void
setPointa(Point pointa) {
this.pointa
= pointa;
}
public void show()
{
System.out.printf("pointa=" + "(" + pointa.getX()+"," + pointa.getY()+ ")" +"\n" );
}
}
Spring.xml
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="triangle"
class="madhav.iocdep.Triangle">
THESE PROPERTIES SET BY THE SPRING CONTAINER BASED ON
SETTERS OF A “Point” CLASS.
|
</bean>
<bean id="point1"
class="madhav.iocdep.Point">
<property name="x" value="0"></property>
<property name="y" value="0"></property>
</bean>
</beans>
TestCase.java
package madhav.iocdep;
import
org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import
org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//test casse for iocdep(ioc dependency constructor based
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle t=(Triangle)bf.getBean("triangle");
t.show();
}
}
Output:
pointa=(0,0)
example 4
// THIS PROGRAM WILL DESCRIBES –COLLECTIONS IN SPRING BEANS.
Point.java
package
madhav.ioccollections;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
Triangle.java
package
madhav.ioccollections;
import java.util.List;
public class Triangle {
private
List<Point> points;
public
List<Point> getPoints() {
return points;
}
public void
setPoints(List<Point> points) {
this.points = points;
}
public void show()
{
for(Point p:points)
{
System.out.printf("points=" + "(" + p.getX()+"," + p.getY()+ ")" +"\n" );
}
}
}
Spring.xml
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- hear i am defining collection of points for
Triangle class. -->
<bean id="trianglelist"
class="madhav.ioccollections.Triangle">
<property name="points">
<list>
<ref bean="point1"/>
<ref bean="point2"/>
<ref bean="point3"/>
</list>
</property>
</bean>
<bean id="point1"
class="madhav.ioccollections.Point">
<property name="x"
value="0"></property>
<property name="y"
value="0"></property>
</bean>
<bean id="point2"
class="madhav.ioccollections.Point">
<property name="x"
value="2"></property>
<property name="y"
value="5"></property>
</bean>
<bean id="point3"
class="madhav.ioccollections.Point">
<property name="x"
value="6"></property>
<property name="y"
value="9"></property>
</bean>
</beans>
TestCase.java
package
madhav.ioccollections;
import
org.springframework.beans.factory.BeanFactory;
import
org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//test case for ioccollection
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle t=(Triangle)bf.getBean("trianglelist");
t.show();
}
}
Output:
points=(0,0)
points=(2,5)
points=(6,9)
BEAN INHERITANCE:
In spring , the inheritance is supported in bean
configuration for a bean to share common values properties or configurations.
A child bean or inherited bean can inherit its parent bena
configurations, properties and some attributes.
EXAMPLE 4(BEAN-INHERITANCE)
// THIS PROGRAM WILL DESCRIBES –BEAN INHERITANCE.
Point.java
package madhav.iocdep;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
package madhav.iocdep;
public class Triangle {
private Point pointa;
private Point pointb;
private Point pointc;
public Point
getPointa() {
return pointa;
}
public void setPointa(Point
pointa) {
this.pointa = pointa;
}
public Point
getPointb() {
return pointb;
}
public void setPointb(Point
pointb) {
this.pointb = pointb;
}
public Point
getPointc() {
return pointc;
}
public void setPointc(Point
pointc) {
this.pointc = pointc;
}
public void show()
{
System.out.printf("pointa=" + "(" + pointa.getX()+"," + pointa.getY()+ ")" +"\n" );
System.out.printf("pointb=" + "(" + pointb.getX()+"," + pointb.getY()+ ")" +"\n" );
System.out.printf("pointc=" + "(" + pointc.getX() +"," + pointc.getY()+ ")" +"\n" );
}
}
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
PARENT BEAN
|
<bean id="triangleparent" class="madhav.iocdep.Triangle">
<property name="pointa" ref="point1"></property>
</bean>
<bean id="triangle"
class="madhav.iocdep.Triangle" parent=”triangleparent”>
<property name="pointb"
ref="point2"></property>
<property name="pointc"
ref="point3"></property>
</bean>
<bean id="point1"
class="madhav.iocdep.Point">
<property name="x"
value="0"></property>
HEAR THE CHILD BEAN IS INHERIT THE PARENT
PROPERTIES
|
</bean>
<bean id="point2"
class="madhav.iocdep.Point">
<property name="x"
value="2"></property>
<property name="y"
value="5"></property>
</bean>
<bean id="point3"
class="madhav.iocdep.Point">
<property name="x"
value="6"></property>
<property name="y"
value="9"></property>
</bean>
</beans>
TestCase.java
package madhav.iocdep;
import
org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import
org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public
static void main(String[] args) {
//
TODO Auto-generated method stub
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle
t=(Triangle)bf.getBean("triangle");
t.show();
}
}
pointa=(0,0)
pointb=(2,5)
pointc=(6,9)
INNER BEANS:
In spring framework, whenever a bean is used for only one
particular property, it’s advice to declare it an inner bean. And the inner
bean is support both in setter injection ‘property’ and constructor injection
‘constructor-arg’.
EXAMPLE 6(INNER BEANS)
// THIS PROGRAM WILL DESCRIBES –INNER BEANS.
Point.java
package madhav.iocdep;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
package madhav.iocdep;
public class Triangle {
private Point pointa;
private Point pointb;
private Point pointc;
public Point
getPointa() {
return pointa;
}
public void setPointa(Point
pointa) {
this.pointa = pointa;
}
public Point
getPointb() {
return pointb;
}
public void setPointb(Point
pointb) {
this.pointb = pointb;
}
public Point
getPointc() {
return pointc;
}
public void setPointc(Point
pointc) {
this.pointc = pointc;
}
public void show()
{
System.out.printf("pointa=" + "(" + pointa.getX()+"," + pointa.getY()+ ")" +"\n" );
System.out.printf("pointb=" + "(" + pointb.getX()+"," + pointb.getY()+ ")" +"\n" );
System.out.printf("pointc=" + "(" + pointc.getX() +"," + pointc.getY()+ ")" +"\n" );
}
}
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
INNER BEAN
|
<property name="pointa">
<bean class="madhav.iocdep.Point">
<property name="x" value="0"></property>
<property name="y" value="0"></property>
</bean>
</property>
<property name="pointb"
ref="point2"></property>
<property name="pointc"
ref="point3"></property>
</bean>
<bean id="point2"
class="madhav.iocdep.Point">
<property name="x"
value="2"></property>
<property name="y"
value="5"></property>
</bean>
<bean id="point3"
class="madhav.iocdep.Point">
<property name="x"
value="6"></property>
<property name="y"
value="9"></property>
</bean>
</beans>
TestCase.java
package madhav.iocdep;
import
org.springframework.beans.factory.BeanFactory;
import
org.springframework.beans.factory.xml.XmlBeanFactory;
import
org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public
static void main(String[] args) {
//
TODO Auto-generated method stub
//test casse for iocdep(ioc dependency
setter based)
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle t=(Triangle)bf.getBean("triangle");
t.show();
}
}
Output:
pointa=(0,0)
pointb=(2,5)
pointc=(6,9)
bean
autowiring:
Autowiring provides more fine-grained control over where
and how autowiring should be accomplished.
Example
program 8:
//this
program will describes “autowiring”:
Point.java
package madhav.iocdep;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
Triangle.java
package madhav.iocdep;
public class Triangle {
private Point pointa;
THIS METHOD USED BY THE SPRING CONTAINER
FOR SETTING THE DEPEDENCE-“pointa”
|
{
this.pointa=pointa;
}
public Point
getPointa() {
return pointa;
}
public void
setPointa(Point pointa) {
this.pointa
= pointa;
}
public void show()
{
System.out.printf("pointa=" + "(" + pointa.getX()+"," + pointa.getY()+ ")" +"\n" );
}
}
Spring.xml
<?xml version="1.0"
encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="triangle"
class="madhav.iocdep.Triangle" autowire=”type”>
</bean>
<bean id="point1"
class="madhav.iocdep.Point">
<property name="x"
value="0"></property>
<property name="y"
value="0"></property>
</bean>
By using the , we can avoid “<propery> element tag from the
“spring.xml “
|
</beans>
TestCase.java
package madhav.iocdep;
import
org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import
org.springframework.core.io.FileSystemResource;
public class TestCase {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//test casse for iocdep(ioc dependency constructor based
BeanFactory bf=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Triangle t=(Triangle)bf.getBean("triangle");
t.show();
}
}
Output:
pointa=(0,0)
BEAN SCOPES AND LIFECYCLE:
We know that the beans configured in the spring beans XML
configuration file are instantiated and managed by the spring core container.
And one of the other great things of sprig frameworks
customization support is the configuration that is allows to specifying the
scope for each particular bean definition as per the requirements
Scope
|
Description
|
Singleton
|
A bean
definition configured with this scope is instantiated only once per container
instance.
|
Prototype
|
A bean
definition configured with this scope
is instantiated every time it is requested for or referenced.
|
Request
|
|
Session
|
|
Global
session
|
Annotations:
1.
@Autowire
2.
@Required
3.
@Qualifies
Working with stereotype
4.
@component
5.
@repository
6.
@service and @Controller
@Autowire :
Used to set the dependences automatically. Config methods may have an
arbitrary name and any number of arguments; each of those arguments will be
autowired with a matching bean in the Spring container.
@Required
Used to set the dependences automatically.
@QulifierThis annotation may be used on a field or parameter as a qualifier for candidate beans when autowiring.
Example program1:
//this program will describes the annotations-@Autowire,@Requied
Driver.java
package softech.madhav;
public class Driver {
private String driverName;
private String driverLoc;
public String
getDriverName() {
return driverName;
}
public void
setDriverName(String driverName) {
this.driverName = driverName;
}
public String
getDriverLoc() {
return driverLoc;
}
public void setDriverLoc(String
driverLoc) {
this.driverLoc = driverLoc;
}
}
Connection.java
package softech.madhav;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
public class Connection {
private Driver driver;
public Driver
getDriver() {
return driver;
}
@Autowired
public void
setDriver(Driver driver) {
this.driver = driver;
}
public void getConnection()
{
System.out.println("connection
--obtained the below info");
System.out.println("drivername="+ driver.getDriverName());
System.out.println("drivername="+ driver.getDriverLoc());
}
}
<?xml version="1.0"
encoding="UTF-8"?>
<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">
<context:annotation-config></context:annotation-config>
<bean id="driver"
class="softech.madhav.Driver" >
<property name="driverName"
value="mysql"></property>
<property name="driverLoc"
value="mysql.driver"></property>
</bean>
<bean id="conn"
class="softech.madhav.Connection">
</bean>
</beans>
package softech.madhav;
import
org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import
org.springframework.core.io.FileSystemResource;
import
org.springframework.beans.factory.xml.*;
public class TestCase {
public
static void main(String[] args) {
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
// BeanFactory ctx=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Connection e=(Connection)ctx.getBean("conn");
e.getConnection();
}
}
Output:
connection --obtained the below
info
drivername=mysql
drivername=mysql.driverExample program 2:
//this program will describes the annotations -@Component,@Service,@Qualifier
Driver.java
package softech.madhav;
public class Driver {
private String driverName;
private String driverLoc;
public String
getDriverName() {
return driverName;
}
public void
setDriverName(String driverName) {
this.driverName = driverName;
}
public String
getDriverLoc() {
return driverLoc;
}
public void
setDriverLoc(String driverLoc) {
this.driverLoc = driverLoc;
}
}
package softech.madhav;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import
org.springframework.stereotype.Service;
@Service("conn")
public class Connection {
@Autowired
@Qualifier("driver2")
private Driver driver;
public Driver getDriver() {
return
driver;
}
public void setDriver(Driver driver) {
this.driver
= driver;
}
public void getConnection()
{
System.out.println("connection
--obtained the below info");
System.out.println("drivername="+
driver.getDriverName());
System.out.println("drivername="+
driver.getDriverLoc());
}
}
Spring.xml
<?xml version="1.0"
encoding="UTF-8"?>
<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">
<context:component-scan base-package="softech.madhav"/>
This will give information to the container for searching the components
automatically.
|
<bean id="driver"
class="softech.madhav.Driver" >
<property name="driverName"
value="oracle"></property>
<property name="driverLoc"
value="orcle.driver"></property>
</bean>
<bean id="driver2"
class="softech.madhav.Driver" >
<property name="driverName"
value="mysql"></property>
<property name="driverLoc"
value="mysql.driver"></property>
</bean>
</beans>
TestCase.java
package softech.madhav;
import
org.springframework.beans.factory.BeanFactory;
import
org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import
org.springframework.core.io.FileSystemResource;
import
org.springframework.beans.factory.xml.*;
public class TestCase {
public
static void main(String[] args)
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
// BeanFactory ctx=new XmlBeanFactory(new
FileSystemResource("spring.xml"));
Connection e=(Connection)ctx.getBean("conn");
e.getConnection();
}
}
Output:
connection --obtained the below
info
drivername=mysql
drivername=mysql.driver
click hear to download the source code