You are on page 1of 3

Creamos dos clases, dirección y persona, donde tenemos una dependencia de persona a dirección:

public class Address {

private int id;


private String street;
private String postCode;

public Address() {

public int getId() {


return id;
}
public void setId(int id) {
this.id = id;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode) {
this.postCode = postCode;
}

@Override
public String toString() {
return "Address [" + " street=" + street + ", postCode="
+ postCode + "]";
}
}

public class Person {

private int id;


private String name;
@Autowired
private Address address;

public int getId() {


return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ",
Address=" + address + "]";
}
}
Archivo de configuración donde instanciamos los Beans:

@Configuration
public class ConfiguracionAplicacion {

@Bean("address")
Address direccion() {
Address address = new Address();
address.setId(1);
address.setStreet("cr 14 # 7b 69");
address.setPostCode("110011");
return address;
}

@Bean("person")
Person persona() {
Person person = new Person();
person.setId(1);
person.setName("alfonso");
Address direccion = new Address();
person.setAddress(direccion);
return person;
}
}
Clase donde ejecutamos la prueba. En el hacemos la inyección del bean de personas:

public class MainAnnotationConfigApplicationContext {

public static ApplicationContext context;


public static void main(String[] args) {

context = new
AnnotationConfigApplicationContext(ConfiguracionAplicacion.class);

//Address address = (Address)


context.getBean("address");
Person person = (Person) context.getBean("person");
//person.setAddress(address);

System.out.println(person.toString());
}
}

Si queremos darle valores diferentes a los dados por defecto entonces se hace lo siguiente:

public class MainAnnotationConfigApplicationContext {

public static ApplicationContext context;


public static void main(String[] args) {

context = new
AnnotationConfigApplicationContext(ConfiguracionAplicacion.class);

Person person = (Person) context.getBean("person");


Address address = new Address();
address.setId(2);
address.setStreet("dirección 1 34 56");
address.setPostCode("ffas33");
person.setAddress(address);

System.out.println(person.toString());
}
}

You might also like