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 !!


Notify of

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.