Showing posts with label Spring Basics. Show all posts
Showing posts with label Spring Basics. Show all posts

Thursday, 24 May 2018

What are spring beans? | Spring Tutorial | Spring basics | Spring Framework

Enjoying this Java & Spring tutorial?

Subscribe to Ram N Java on YouTube

Introduction

In the Spring Framework, Spring Beans are the backbone of your application. A Spring Bean is simply an object that is instantiated, assembled, and managed by the Spring IoC (Inversion of Control) container.

Instead of manually creating objects using the new keyword, the Spring container takes over the complete lifecycle of beans—from creation and dependency injection to destruction—enabling loose coupling and easy maintenance.

Ways to Define Spring Beans

Spring provides multiple ways to define and configure beans:

  • XML Configuration: Defined using the <bean> tag inside <beans>.
  • Annotation Configuration: Defined using annotations like @Component, @Service, @Repository, or @Controller.
  • Java-Based Configuration: Defined using @Configuration and @Bean annotations in pure Java classes.

1. Create the Java Bean Class

Here is a simple POJO class named Employee with a name property, setter method, and a display method:

public class Employee {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void displayEmployeeDetails() {
        System.out.println("Employee Name: " + name);
    }
}
  

2. Configure the Bean in Spring XML

In your Spring configuration file (applicationContext.xml), define the bean using the <bean> element, giving it a unique id and configuring its properties:

<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.xsd">

    <bean id="employeeBean" class="Employee">
        <property name="name" value="Peter" />
    </bean>

</beans>
  

3. Retrieve the Bean from the Spring Container

Load the application context and retrieve the managed bean using its unique ID:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Employee emp = (Employee) context.getBean("employeeBean");
        emp.displayEmployeeDetails();
    }
}
  

Watch More Spring Tutorials


Click here to watch on Youtube:
https://www.youtube.com/watch?v=C3iALyO4FJI&list=UUhwKlOVR041tngjerWxVccw

Click the below Image to Enlarge:
What are spring beans? | Spring Tutorial | Spring basics | Spring Framework

What are spring beans? | Spring Tutorial | Spring basics | Spring Framework

What are spring beans? | Spring Tutorial | Spring basics | Spring Framework

What are spring beans? | Spring Tutorial | Spring basics | Spring Framework

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>

Employee.java

package com.ram.model;

/**
 * Spring bean
 *
 */

public class Employee
{
    private String name;

    public void setName(String name)
    {
        this.name = name;
    }

    public void employeeDetails()
    {
        System.out.println("Employee Name =  " + name);
    }
}

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="employee" class="com.ram.model.Employee">
        <property name="name" value="Peter" />
    </bean>

</beans>

App.java

package com.ram.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ram.model.Employee;

public class App
{
    public static void main(String[] args)
    {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");

        System.out.println("---------------------------------------");

        Employee employee = (Employee) context.getBean("employee");
        System.out.println(
                "Got employee object from the ApplicationContext(Spring Container)");
        employee.employeeDetails();

    }

}

Output

Apr 10, 2018 8:52:46 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Tue Apr 10 08:52:46 IST 2018]; root of context hierarchy
Apr 10, 2018 8:52:47 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
Got employee object from the ApplicationContext(Spring Container)
Employee Name =  Peter

Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_what_are_beans.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_what_are_beans

Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/a1d5b66cf948298a0bb7c33e9b2c0967275f5a95/Spring_2018/SpringDemo_what_are_beans/?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
  • How to use ClassPathXmlApplicationContext? | Spring Tutorial | Spring basics | Spring Framework

    Enjoying this Java & Spring tutorial?

    Subscribe to Ram N Java on YouTube

    Introduction

    In Spring applications, the IoC (Inversion of Control) container manages bean creation, wiring, and lifecycle. One of the most popular implementations of ApplicationContext is ClassPathXmlApplicationContext, which loads bean configuration XML files directly from your application's classpath.

    In this guide, you will learn how to configure Spring XML files and bootstrap the Spring IoC container using ClassPathXmlApplicationContext in Java.

    1. Create the Java Bean Class

    Start by creating a standard Java POJO class (for example, HelloWorld) with a message property and a greeting method:

    public class HelloWorld {
        private String message;
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public void sayHello() {
            System.out.println("Greeting Message: " + message);
        }
    }
      

    2. Define Spring XML Configuration (applicationContext.xml)

    Place your configuration file in the classpath root (such as src/main/resources) and declare your bean definition:

    <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.xsd">
    
        <bean id="helloWorldBean" class="HelloWorld">
            <property name="message" value="Welcome to Spring Framework!" />
        </bean>
    
    </beans>
      

    3. Load Context Using ClassPathXmlApplicationContext

    Instantiate ClassPathXmlApplicationContext by passing the name of the XML configuration file, retrieve the bean by ID, and execute the method:

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class App {
        public static void main(String[] args) {
            // Load the Spring XML configuration from classpath
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    
            // Retrieve the bean from the IoC container
            HelloWorld hello = (HelloWorld) context.getBean("helloWorldBean");
    
            // Call the method
            hello.sayHello();
        }
    }
      

    Watch More Spring Tutorials


    Click here to watch on Youtube: 
    https://www.youtube.com/watch?v=m74WQGceJvA&list=UUhwKlOVR041tngjerWxVccw 

    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>

    Employee.java

    package com.ram.model;

    /**
     * Spring bean
     *
     */

    public class Employee
    {
        private String name;

        public void setName(String name)
        {
            this.name = name;
        }

        public void employeeDetails()
        {
            System.out.println("Employee Name =  " + name);
        }
    }

    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="employee" class="com.ram.model.Employee">
            <property name="name" value="Peter" />
        </bean>

    </beans>

    App.java

    package com.ram.core;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.ram.model.Employee;

    public class App
    {
        public static void main(String[] args)
        {
            /*
             * Create a new ClassPathXmlApplicationContext, loading the
             * definitions from the given XML file and automatically
             * refreshing the context.
             *
             * Parameters:
             *
             * configLocation - resource location
             */

            ApplicationContext context = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");

            System.out.println("---------------------------------------");

            Employee employee = context.getBean("employee", Employee.class);
            System.out.println(
                    "Got employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();

        }

    }

    Output

    Apr 09, 2018 8:36:57 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@2096442d: startup date [Mon Apr 09 08:36:56 IST 2018]; root of context hierarchy
    Apr 09, 2018 8:36:58 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    ---------------------------------------
    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    Click the below link to download the code:
    https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_ClassPathXmlApplicationContext.zip?attredirects=0&d=1

    Github Link:
    https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_ClassPathXmlApplicationContext

    Bitbucket Link:
    https://bitbucket.org/ramram43210/spring/src/a1d5b66cf948298a0bb7c33e9b2c0967275f5a95/Spring_2018/SpringDemo_ClassPathXmlApplicationContext/?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
  • How to use FileSystemXmlApplicationContext? | Spring Tutorial | Spring basics | Spring Framework

    Enjoying this Java & Spring tutorial?

    Subscribe to Ram N Java on YouTube

    Introduction

    In Spring applications, the IoC (Inversion of Control) container manages bean creation, wiring, and lifecycle. While ClassPathXmlApplicationContext loads XML definitions directly from the project's classpath, FileSystemXmlApplicationContext allows you to load Spring XML configuration files from the local file system using absolute or relative paths.

    In this guide, you will learn how to configure Spring XML files and bootstrap the Spring IoC container using FileSystemXmlApplicationContext in Java.

    1. Create the Java Bean Class

    Start by creating a standard Java POJO class (for example, HelloWorld) with a message property and a greeting method:

    public class HelloWorld {
        private String message;
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public void sayHello() {
            System.out.println("Greeting Message: " + message);
        }
    }
      

    2. Define Spring XML Configuration (applicationContext.xml)

    Create your Spring XML configuration file in a specific file system directory or project root directory and declare your bean definition:

    <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.xsd">
    
        <bean id="helloWorldBean" class="HelloWorld">
            <property name="message" value="Hello from FileSystemXmlApplicationContext!" />
        </bean>
    
    </beans>
      

    3. Load Context Using FileSystemXmlApplicationContext

    Instantiate FileSystemXmlApplicationContext by passing the file system path (relative or absolute) of your XML configuration, retrieve the bean, and execute the method:

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.FileSystemXmlApplicationContext;
    
    public class App {
        public static void main(String[] args) {
            // Load the Spring XML configuration from file system path
            ApplicationContext context = new FileSystemXmlApplicationContext("src/main/resources/applicationContext.xml");
    
            // Retrieve the bean from the IoC container
            HelloWorld hello = (HelloWorld) context.getBean("helloWorldBean");
    
            // Call the method
            hello.sayHello();
        }
    }
      

    Watch More Spring Tutorials


    Click here to watch on Youtube:
    https://www.youtube.com/watch?v=YKI0ssG-3tQ&list=UUhwKlOVR041tngjerWxVccw

    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>

    Employee.java

    package com.ram.model;

    /**
     * Spring bean
     *
     */

    public class Employee
    {
        private String name;

        public void setName(String name)
        {
            this.name = name;
        }

        public void employeeDetails()
        {
            System.out.println("Employee Name =  " + name);
        }
    }

    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="employee" class="com.ram.model.Employee">
            <property name="name" value="Peter" />
        </bean>

    </beans>

    App.java

    package com.ram.core;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.FileSystemXmlApplicationContext;

    import com.ram.model.Employee;

    public class App
    {
        public static void main(String[] args)
        {
            /*
             * Create a new FileSystemXmlApplicationContext, loading the
             * definitions from the given XML file and automatically
             * refreshing the context.
             *
             * Parameters:
             *
             * configLocation - file path
             */

            ApplicationContext context = new FileSystemXmlApplicationContext(
                    "D:\\eclipse\\workspace\\SpringDemo\\src\\main\\resources\\applicationContext.xml");

            System.out.println("---------------------------------------");

            Employee employee = context.getBean("employee", Employee.class);
            System.out.println(
                    "Got employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();

        }

    }

    Output.txt

    Apr 09, 2018 8:16:54 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing org.springframework.context.support.FileSystemXmlApplicationContext@2096442d: startup date [Mon Apr 09 08:16:54 IST 2018]; root of context hierarchy
    Apr 09, 2018 8:16:56 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from file [D:\eclipse\workspace\SpringDemo\src\main\resources\applicationContext.xml]
    ---------------------------------------
    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    Click the below link to download the code:
    https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_FileSystemXmlApplicationContext.zip?attredirects=0&d=1

    Github Link:
    https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_FileSystemXmlApplicationContext

    Bitbucket Link:
    https://bitbucket.org/ramram43210/spring/src/a1d5b66cf948298a0bb7c33e9b2c0967275f5a95/Spring_2018/SpringDemo_FileSystemXmlApplicationContext/?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
  • How to use ApplicationContext interface[IoC Container] methods? | Spring Tutorial | Spring Framework

    Enjoying this Java & Spring tutorial?

    Subscribe to Ram N Java on YouTube

    Introduction

    The ApplicationContext interface is the central interface to a Spring application. Acting as an advanced Inversion of Control (IoC) container, it extends BeanFactory and adds enterprise-level functionality including internationalization, event propagation, and resource loading.

    In this guide, you will explore the essential methods provided by the ApplicationContext and BeanFactory interfaces to inspect, retrieve, and manage Spring beans dynamically.

    Key ApplicationContext Methods

    • getBean(String name): Retrieves a bean instance using its registered bean ID or name.
    • getBean(Class<T> requiredType): Retrieves the unique bean instance matching the specified type.
    • containsBean(String name): Checks whether the Spring container contains a bean definition with the given name.
    • isSingleton(String name): Determines whether the bean is configured with singleton scope.
    • isPrototype(String name): Determines whether the bean is configured with prototype scope.
    • getType(String name): Finds the runtime Java type (Class<?>) of the specified bean.
    • getAliases(String name): Returns all aliases defined for the given bean name.

    1. Create the Java Bean Class

    Define a simple bean class (such as HelloWorld):

    public class HelloWorld {
        private String message;
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public void sayHello() {
            System.out.println("Message: " + message);
        }
    }
      

    2. Define Spring XML Configuration (applicationContext.xml)

    Declare the bean in your applicationContext.xml file and assign an alias to test alias-checking methods:

    <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.xsd">
    
        <bean id="helloWorldBean" class="HelloWorld" scope="singleton">
            <property name="message" value="Hello, Spring Container!" />
        </bean>
    
        <alias name="helloWorldBean" alias="greetingBean" />
    
    </beans>
      

    3. Test ApplicationContext Methods in Main Application

    Bootstrap the container with ClassPathXmlApplicationContext and invoke the container inspection methods:

    import java.util.Arrays;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class App {
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    
            // getBean
            HelloWorld hello = (HelloWorld) context.getBean("helloWorldBean");
            hello.sayHello();
    
            // containsBean
            boolean exists = context.containsBean("helloWorldBean");
            System.out.println("Contains helloWorldBean: " + exists);
    
            // isSingleton
            boolean isSingle = context.isSingleton("helloWorldBean");
            System.out.println("Is Singleton: " + isSingle);
    
            // getType
            Class<?> beanClass = context.getType("helloWorldBean");
            System.out.println("Bean Class Type: " + beanClass.getName());
    
            // getAliases
            String[] aliases = context.getAliases("helloWorldBean");
            System.out.println("Aliases: " + Arrays.toString(aliases));
        }
    }
      

    Watch More Spring Tutorials


    Click here to watch on Youtube:
    https://www.youtube.com/watch?v=qfP7J7nU4yM&list=UUhwKlOVR041tngjerWxVccw

    Click the below Image to Enlarge:
    How to use ApplicationContext interface[IoC Container] methods? | Spring Tutorial | Spring Framework
    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>

    Employee.java

    package com.ram.model;

    /**
     * Spring bean
     *
     */

    public class Employee
    {
        private String name;

        public void setName(String name)
        {
            this.name = name;
        }

        public void employeeDetails()
        {
            System.out.println("Employee Name =  " + name);
        }
    }

    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="employee" class="com.ram.model.Employee">
            <property name="name" value="Peter" />
        </bean>

    </beans>

    App.java

    package com.ram.core;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.ram.model.Employee;

    public class App
    {
        public static void main(String[] args)
        {
            ApplicationContext context = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");

            System.out.println("---------------------------------------");

            // 1 st way of getting employee bean
            Object object = context.getBean("employee");
            Employee employee = (Employee) object;
            System.out.println(
                    "Got employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();

            // 2nd way of getting employee bean
            employee = context.getBean("employee", Employee.class);
            System.out.println(
                    "\nGot employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();

            // 3rd way of getting employee bean
            employee = context.getBean(Employee.class);
            System.out.println(
                    "\nGot employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();

            boolean result = context.containsBean("employee");
            System.out.println("\nis employee bean available? = " + result);

            boolean isSingleton = context.isSingleton("employee");
            System.out.println(
                    "\nis employee bean Singleton[always return the same instance]? = "
                            + isSingleton);

            boolean isPrototype = context.isPrototype("employee");
            System.out.println(
                    "\nis employee bean isPrototype[always return independent instances]? = "
                            + isPrototype);

            String displayName = context.getDisplayName();
            System.out.println("\ndisplayName = " + displayName);

        }

    }

    Output

    Apr 08, 2018 9:20:49 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@2096442d: startup date [Sun Apr 08 09:20:49 IST 2018]; root of context hierarchy
    Apr 08, 2018 9:20:51 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    ---------------------------------------
    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    is employee bean available? = true

    is employee bean Singleton[always return the same instance]? = true

    is employee bean isPrototype[always return independent instances]? = false

    displayName = org.springframework.context.support.ClassPathXmlApplicationContext@2096442d

    Refer:
    https://docs.spring.io/spring-framework/docs/current/javadoc-api/index.html?org/springframework/context/ApplicationContext.html

    Click the below link to download the code:
    https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_ApplicationContext.zip?attredirects=0&d=1

    Github Link:
    https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_ApplicationContext

    Bitbucket Link:
    https://bitbucket.org/ramram43210/spring/src/a1d5b66cf948298a0bb7c33e9b2c0967275f5a95/Spring_2018/SpringDemo_ApplicationContext/?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
  • Tutorials