Blog Image

Example On Inner Bean  

In this blog we are going to discuss about Inner beans while working with Configuration-Approach of Spring.

To manage dependencies between the classes in Spring we need to declare the classes as Bean Definitions in Spring Bean Configuration File and should inject them via <property/> (or) <constructor-arg/> as reference.

In case of Inner beans, we declare the dependent bean inside the <property/> (or) <constructor-arg/> of target bean as shown below.

Let us See the example on Inner Beans and how we can use in our projects lets explore.

Technologies used :-
 1) java (1.8).
 2) maven (3.5.2).
 3) Spring (4.0.0).

Project Structure

Execute below command for creating maven project.


mvn archetype:generate -DgroupId=com.sjg
-DartifactId=example-on-Inner-Bean
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false


Below is the maven project structure with packages and java src files.

Classes
BiCycle.java


package com.sjg.beans;

public class BiCycle {
    private Chain chain;

    public void setChain(Chain chain) {
        this.chain = chain;
    }

    @Override
    public String toString() {
        return "BiCycle [chain=" + chain + "]";
    }

}

Chain.java


package com.sjg.beans;

public class Chain {
    private int id;
    private String manufacturer;

    public void setId(int id) {
        this.id = id;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    @Override
    public String toString() {
        return "Chain [id=" + id + ", manufacturer=" + manufacturer + "]";
    }

}

application-context.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";
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">;

    <bean id="biCycle" class="com.sjg.beans.BiCycle">
        <property name="chain">
            <bean class="com.sjg.beans.Chain">
                <property name="id" value="19" />
                <property name="manufacturer" value="atlas" />
            </bean>
        </property>
    </bean>
</beans>

pom.xml


<?xml version="1.0" encoding="UTF-8"?>

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">;
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sjg</groupId>
    <artifactId>example-on-Inner-Beans</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>example-on-Inner-Beans</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.srimanjavagroup.com</url>;

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.0.RELEASE</version>
        </dependency>
    </dependencies>
</project>

Test.java


package com.sjg.test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import com.sjg.beans.BiCycle;

public class Test {
    public static void main(String[] args) {
        BeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/sjg/common/application-context.xml"));
        BiCycle biCycle = factory.getBean("biCycle", BiCycle.class);
        System.out.println(biCycle);
    }

}


Please find attached the example_on_Inner_Beans.zip as an maven project as a reference. Feel free to pass your comments in the blog.

About author

User Image
Sriman

A software developer on JDK and JEE platform. I am passionate about Java technology and always an explorer and learner in new technologies in Java. I have experience on Open Source technologies like Struts, Spring, Jsf etc.. and even strong knowledge on Integration/Distributed world like Ejb, Web Services and Restful Services.

0

-Comments

Be the first person to write a comment for this Blog
Load More

No More Comments

Leave a Comment

Your comment has been posted and will appear soon.