4. Autowire - autodetect
It is deprecated since Spring 3.
· Spring Autowiring by autodetect uses either of two modes i.e. constructor or byType modes. First it will try to look for valid
· Constructor with arguments, If found the constructor mode is chosen. If there is no constructor defined in bean, or
· Explicit default no-args constructor is present, the autowire byType mode is chosen.
· It is deprecated since Spring 3..
1. Student.java
package bean;
public class Student {
private int sno;
private String name;
private Address addr;
//************ setAddr() Replaced by Constrctor
public Student(Address addr) {
this.addr = addr;
}
public void setAddr(Address addr) {
this.addr = addr;
}
public Address getAddr() {
return addr;
}
//************************************************
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void getData(){
System.out.println("********* Address ************");
System.out.println(getSno()+" \n"+getName()+"\n D:no "+getAddr().getDno());
System.out.println(getAddr().getCity()+"\n "+getAddr().getState());
}
}
2. Address.java
package bean;
public class Address {
private int dno;
private String city;
private String state;
public int getDno() {
return dno;
}
public void setDno(int dno) {
this.dno = dno;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
3. Spring.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="xyz" class="bean.Address">
<property name="dno" value="409"></property>
<property name="city" value="HYDERABAD"></property>
<property name="state" value="ANDHRA PRADESH"></property>
</bean>
<bean id="student" class="bean.Student" autowire="autodetect">
<property name="sno" value="101"></property>
<property name="name" value="SATYA KAVETI"></property>
</bean>
4. AutowireMain.java
package bean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AutowireMain {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("res/spring.xml");
Student student = (Student) context.getBean("student");
System.out.println("----------------------------");
student.getData();
}
}
Output
----------------------------
********* Address ************
101
SATYA KAVETI
D:no 409
HYDERABAD
ANDHRA PRADESH