Java Techies- Solution for All
Spring Auto Components Scanning Example
You have to annotate with @Component to indicate this is an auto scan component.
Student.java File
package com.jtechies; import org.springframework.beans.factory .annotation.Autowired; import org.springframework.stereotype.Component; @Component public class Student { private String name; @Autowired private Course course; public String getName() { return name; } public void setName(String name) { this.name = name; } public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } }
Course.java File
package com.jtechies; import org.springframework.stereotype.Component; @Component public class Course { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Test.java File
package com.jtechies.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support .ClassPathXmlApplicationContext; import com.jtechies.Course; import com.jtechies.Student; public class Test { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Course course = (Course)context.getBean("course"); course.setName("MCA"); Student student = (Student) context.getBean("student"); System.out.println("course name = "+student.getCourse().getName()); } }
spring.xml File
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context= "http://www.springframework.org/schema/context" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- base-package indicates where your component stored, spring will scan this folder and find out the bean annotated with @Component --> <context:component-scan base-package="com.jtechies" /> </beans>
Output
course name = MCA
Custom auto scan component name and types of components scan annotation
By default, Spring convert the first character of component into lower case. TO create a custom name for component, use @Service annotation
@Service("myStudent") public class Student
There are 4 types of auto components scan annotation types:
- @Component Indicates a auto scan component.
- @Repository Indicates DAO component in the persistence layer.
- @Service Indicates the service component in the business layer.
- @Controller Indicates a controller component in the presentation layer.