Spring bean autowire byName

In Spring framework, bean autowiring by name allows a property to be autowired such that it will inspect the container and look for a bean named exactly the same as the property which needs to be autowired.

For example, if you have a bean definition which is set to autowire by name, and it contains a “departmentBean” property (i.e. it has a setDepartmentBean(..) method), container will look for a bean definition named departmentBean, and if found, use it to set the property.

Read More : Spring bean autowiring modes

Autowiring byName Example

Bean definitions

A typical bean configuration file (e.g. applicationContext.xml) will look like this:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

    <context:component-scan base-package="com.howtodoinjava" />    
   <bean id="employee" class="com.howtodoinjava.demo.beans.EmployeeBean" autowire="byName">
        <property name="fullName" value="Lokesh Gupta"/>
    <bean id="departmentBean" class="com.howtodoinjava.demo.beans.DepartmentBean" >
        <property name="name" value="Human Resource" />

Autowire dependency using autowire=”byName”

In above configuration, I have enabled the autowiring by name for ’employee’ bean. It has been done using autowire="byName".

Let’s see the code.

package com.howtodoinjava.demo.beans;

public class EmployeeBean
    private String fullName;
    private DepartmentBean departmentBean;
    public DepartmentBean getDepartmentBean() {
        return departmentBean;
    public void setDepartmentBean(DepartmentBean departmentBean) {
        this.departmentBean = departmentBean;
    public String getFullName() {
        return fullName;
    public void setFullName(String fullName) {
        this.fullName = fullName;

And DepartmentBean looks like this which has been set:

package com.howtodoinjava.demo.beans;

public class DepartmentBean {
	private String name;
    public String getName() {
        return name;
    public void setName(String name) {
        this.name = name;


To test that bean has been set properly, run following code:

package com.howtodoinjava.demo;

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

import com.howtodoinjava.demo.beans.EmployeeBean;

public class TestAutowire  {
	public static void main(String[] args) {

        ApplicationContext context =
                  new ClassPathXmlApplicationContext(new String[] {"application-context.xml"});
        EmployeeBean employee = (EmployeeBean) context.getBean ("employee");




Lokesh Gupta
Human Resource

Clearly, dependency was injected by name successfully.

Happy Learning !!

Leave a Reply

Most Voted
Newest Oldest
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.

Our Blogs

REST API Tutorial