教我什么是spring框架的构造器注入,请写一个代码示例以及xml文件配置。然后详细注释
时间: 2023-03-29 07:00:47 浏览: 115
spring框架源码md资料文档
Spring框架的构造器注入是指通过构造函数来注入依赖项,它是一种依赖注入的方式。下面是一个示例代码和xml文件配置:
Java代码示例:
public class Person {
private String name;
private int age;
private Address address;
public Person(String name, int age, Address address) {
this.name = name;
this.age = age;
this.address = address;
}
// getter and setter methods
}
public class Address {
private String city;
private String street;
public Address(String city, String street) {
this.city = city;
this.street = street;
}
// getter and setter methods
}
XML文件配置:
<bean id="person" class="com.example.Person">
<constructor-arg name="name" value="张三"/>
<constructor-arg name="age" value="20"/>
<constructor-arg name="address" ref="address"/>
</bean>
<bean id="address" class="com.example.Address">
<constructor-arg name="city" value="北京"/>
<constructor-arg name="street" value="朝阳区"/>
</bean>
注释:
1. 在Person类中,我们定义了一个构造函数,它接受三个参数:name、age和address。这些参数将被用来初始化Person对象的属性。
2. 在Address类中,我们也定义了一个构造函数,它接受两个参数:city和street。这些参数将被用来初始化Address对象的属性。
3. 在XML文件中,我们首先定义了一个id为"address"的bean,它的class属性指向Address类。在这个bean中,我们使用了构造器注入,将city和street作为参数传递给Address的构造函数。
4. 接着,我们定义了一个id为"person"的bean,它的class属性指向Person类。在这个bean中,我们同样使用了构造器注入,将name、age和address作为参数传递给Person的构造函数。其中,address参数使用了ref属性,指向id为"address"的bean。
5. 最后,我们可以通过ApplicationContext来获取person对象,并访问它的属性。例如:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) context.getBean("person");
System.out.println(person.getName()); // 输出"张三"
System.out.println(person.getAge()); // 输出"20"
System.out.println(person.getAddress().getCity()); // 输出"北京"
System.out.println(person.getAddress().getStreet()); // 输出"朝阳区"
阅读全文