应届生应聘阿里,字节跳动必须知道Spring 依赖注入!你还没掌握吗?
2021-02-06 05:17
标签:etag 大学 lap 图片 实例化 ddr contex 数位 自己 注入分为设值注入和和构造注入 本文中,使用学生类Student 和学校类School 作为示范 在resource中的spring xml中将这个类进行声明 在test类中进行测试 测试结果如图,我们发现,此时的实体类没有给属性赋值,均为默认赋值。 此时,我们开始给属性赋值,语法为下表所示 这时,我们运行test,所得结果如下 如果在此时的setter方法中将this.x=x注释掉,我们会发现,程序依然能运行,但是不会给属性赋值,甚至没有的属性,只要有这个setter方法,依然会运行所以说,这种方法是根据属性的名字去寻找setter方法的,而setter是程序员自己决定的。 上例的属性赋值是简单赋值(基本数据类型和String类),下面我们学习属性是引用类型的赋值。 修改后的Student 此时我们需要对spring的xml进行配置 由上可以看出,引用数据类型是将本来value的地方改为ref =“bean的id” 此时将Student类写一个有参的构造方法 此时,构造注入不会调用无参构造方法,而是调用有参构造来实现。 运行test 的结果如下 配置xml还有另外一种方法 此时使用的index是有参构造的参数位置,结果如 一摸一样。。 应届生应聘阿里,字节跳动必须知道Spring 依赖注入!你还没掌握吗? 标签:etag 大学 lap 图片 实例化 ddr contex 数位 自己 原文地址:https://blog.51cto.com/14799672/2490516
设值注入 指调用setter的方法传入被调用者的实例
构造注入指的是构造调用者实例的时候,完成被调用者地 实例化
说白了,第一个是用setter方法传的值,第二个是使用了有参构造方法二.设值注入的实现
Studentpublic class Student {
private String name ;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
‘}‘;
}
}
public void test01(){
String config = "test/spring.xml";
//创建spring对象
ApplicationContext ctx = new ClassPathXmlApplicationContext(config);
Student ser = (Student) ctx.getBean("student");
System.out.println("Student"+ser);
}
School类public class School {
private String address;
private String name;
public void setAddress(String address) {
this.address = address;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "School{" +
"address=‘" + address + ‘\‘‘ +
", name=‘" + name + ‘\‘‘ +
‘}‘;
}
}
public class Student {
private String name ;
private int age;
private School school;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSchool(School school) {
this.school = school;
}
@Override
public String toString() {
return "Student{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
", school=" + school +
‘}‘;
}
}
同时将声明的School类进行赋值
运行test三.构造注入的实现
public Student(String name, int age, School school) {
this.name = name;
this.age = age;
this.school = school;
}
此时我们在xml文件中不会使用property属性进行设置,而是使用constructor-arg 进行设置,
配置的xml文件如下所示。
使用index属性
文章标题:应届生应聘阿里,字节跳动必须知道Spring 依赖注入!你还没掌握吗?
文章链接:http://soscw.com/index.php/essay/51623.html