Click here to watch on Youtube:
https://www.youtube.com/watch?v=Xzuwdt1wiY8&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
pom.xml
Animal.java
Cow.java
Dog.java
AnimalFactory.java
applicationContext.xml
App.java
Output
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_DI_Non-StaticfactoryMethod_another_class.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_DI_Non-StaticfactoryMethod_another_class
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/87c44fe2f8e6bec23f023e02860b09f4be9b1bfd/Spring_2018/SpringDemo_DI_Non-StaticfactoryMethod_another_class/?at=master
See also:
All JavaEE Videos Playlist
All JavaEE Videos
All JAVA EE Links
Spring Tutorial
Servlets Tutorial
All Design Patterns Links
JDBC Tutorial
Java Collection Framework Tutorial
JAVA Tutorial
Kids Tutorial
Cooking Tutorial
https://www.youtube.com/watch?v=Xzuwdt1wiY8&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge:
What is Spring DI with a non-static factory method that returns the instance of another class? |
What is Spring DI with a non-static factory method that returns the instance of another class? |
What is Spring DI with a non-static factory method that returns the instance of another class? |
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0%20http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ram.core</groupId>
<artifactId>SpringDemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringDemo</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring 5 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0%20http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ram.core</groupId>
<artifactId>SpringDemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>SpringDemo</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring 5 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
Animal.java
package com.ram.model;
public interface Animal
{
public abstract void eat();
}
public interface Animal
{
public abstract void eat();
}
Cow.java
package com.ram.model;
public class Cow implements Animal
{
public void eat()
{
System.out.println("Cow eats grass..");
}
}
public class Cow implements Animal
{
public void eat()
{
System.out.println("Cow eats grass..");
}
}
Dog.java
package com.ram.model;
public class Dog implements Animal
{
public void eat()
{
System.out.println("Dog eats chicken bone...");
}
}
public class Dog implements Animal
{
public void eat()
{
System.out.println("Dog eats chicken bone...");
}
}
AnimalFactory.java
package com.ram.factory;
import com.ram.model.Animal;
import com.ram.model.Dog;
public class AnimalFactory
{
public Animal getAnimal()
{
return new Dog();// return any one instance, either Dog or Cow
// return new Cow();
}
}
import com.ram.model.Animal;
import com.ram.model.Dog;
public class AnimalFactory
{
public Animal getAnimal()
{
return new Dog();// return any one instance, either Dog or Cow
// return new Cow();
}
}
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="animalFactory" class="com.ram.factory.AnimalFactory"></bean>
<bean id="animal" class="com.ram.factory.AnimalFactory"
factory-method="getAnimal" factory-bean="animalFactory">
</bean>
</beans>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="animalFactory" class="com.ram.factory.AnimalFactory"></bean>
<bean id="animal" class="com.ram.factory.AnimalFactory"
factory-method="getAnimal" factory-bean="animalFactory">
</bean>
</beans>
App.java
package com.ram.core;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.model.Animal;
public class App
{
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
Animal animal = (Animal)context.getBean("animal");
System.out.println(
"Got " + animal +" object from the ApplicationContext[Spring Container]");
animal.eat();
}
}
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ram.model.Animal;
public class App
{
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
System.out.println("---------------------------------------");
Animal animal = (Animal)context.getBean("animal");
System.out.println(
"Got " + animal +" object from the ApplicationContext[Spring Container]");
animal.eat();
}
}
Output
Jul 06, 2018 9:28:28 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Fri Jul 06 09:28:28 IST 2018]; root of context hierarchy
Jul 06, 2018 9:28:28 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
Got com.ram.model.Dog@3ffc5af1 object from the ApplicationContext[Spring Container]
Dog eats chicken bone...
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Fri Jul 06 09:28:28 IST 2018]; root of context hierarchy
Jul 06, 2018 9:28:28 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
Got com.ram.model.Dog@3ffc5af1 object from the ApplicationContext[Spring Container]
Dog eats chicken bone...
Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_DI_Non-StaticfactoryMethod_another_class.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_DI_Non-StaticfactoryMethod_another_class
Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/87c44fe2f8e6bec23f023e02860b09f4be9b1bfd/Spring_2018/SpringDemo_DI_Non-StaticfactoryMethod_another_class/?at=master
See also:
No comments:
Post a Comment