La inyección de conjuntos requiere que Bean proporcione un constructor predeterminado y los métodos Setter correspondientes para las propiedades que deben inyectarse.
Spring primero llama al constructor predeterminado de Bean para instanciar el objeto Bean, y luego llama al método Setter para inyectar valores de propiedad a través de la reflexión.
Suponiendo que el Bean define explícitamente un constructor con parámetros, debe proporcionar un constructor predeterminado sin parámetros al mismo tiempo; de lo contrario, se lanzará una excepción al usar la inyección de atributos.
public class UserServiceImpl2 implements IUserService {
private String name;
private Integer age;
private Date birthday;
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public void queryAll() {
System.out.println(name+","+age+","+birthday+".");
}
}
<bean id="UserService2" class="com.imis.service.impl.UserServiceImpl2">
<property name="age" value="18"></property>
<property name="name" value="mike"></property>
<property name="birthday" ref="now"></property>
</bean>