This guide will explain the important methods/API's of Spring BeanFactory interface with examples.
Key Points
- The BeanFactory is the root interface for accessing a Spring bean container.
- This interface is implemented by objects that hold a number of bean definitions, each uniquely identified by a String name.
- Normally a BeanFactory will load bean definitions stored in a configuration source (such as an XML document), and use the org.springframework.beans package to configure the beans.
Spring BeanFactory Interface Class Diagram
Below class diagram shows the list of methods/APIs provided by BeanFactory interface:
Spring BeanFactory Methods with Examples
You can find all BeanFactory interface methods at https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html.
The below sample code demonstrate the usage of important BeanFactory interface methods. Note that the comments in below code are self-descriptive:
package net.javaguides.springboot;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
/**
* Created by Ramesh Fadatare
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
BeanFactory beanFactory = SpringApplication.run(Application.class, args);
// Return the bean instance that uniquely matches the given object type, if any.
UserService userService = beanFactory.getBean(UserService.class);
System.out.println(userService.getUserName());
// Determine the type of the bean with the given name.
Class << ? > userService2 = beanFactory.getType("userService");
System.out.println(userService2.getName());
// Does this bean factory contain a bean definition or externally registered
// singleton instance with the given name?
boolean hasBean = beanFactory.containsBean("userService");
System.out.println("containsBean userService :: " + hasBean);
// Is this bean a prototype? That is, will getBean always return independent instances?
boolean isPrototype = beanFactory.isPrototype("userService");
System.out.println(" isPrototype :: " + isPrototype);
// Is this bean a shared singleton? That is, will getBean always return the same instance?
boolean isSingleton = beanFactory.isSingleton("userService");
System.out.println(" isSingleton :: " + isSingleton);
// Return an instance, which may be shared or independent, of the specified bean.
UserService userService3 = (UserService) beanFactory.getBean("userService");
System.out.println(userService3.getUserName());
}
}
@Component
class UserService {
public String getUserName() {
return "Spring Boot";
}
}
Check out a complete step by step example of Spring BeanFactory interface at https://www.javaguides.net/2018/10/spring-beanfactory-interface-example.html
Reference
- https://www.javaguides.net/2018/10/spring-beanfactory-interface-example.html
- https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html
Comments
Post a Comment
Leave Comment