00:00
我们继续呢来讲一下设值注入,上午呢我们就讲到了设置注入给属性赋值,这个设值注入是spring中调用我们的类的set方法来完成赋值的,这个设置注入啊是这个值,这个是这个值。设值注入,也叫set注入,是给属性赋值的。设置注入调用的是类的set方法,那上午呢,我们给student它的类中定义了set方法,我们也发现执行了这个set方法完成了赋值的行为,它只是调用set方法来进行赋值处理。在这里呢,你要明确一点,在我们的Java中呢,它是存放存在着一种命名规则的,也就是说当你进了属性name age之后。
01:00
那我们猜测出当前类中应该有set name that name这样的方法存在。当然,也有setage和getage方法的存在,这是Java中的命名规范。如果你有属性的话,它应该有对应的set和get的方法。同样,如果你看到了一个setage,你的猜测是当前类中应该有一个age的属性,如果你看到了s name,当前类中应该有一个对应的name这样的属性,这是命名规则。那我们在spring配置文件中,当你写了name之后,它执行的是set name方法,根据命名规则,应该能够猜测出当前类中应该有sna这样的方法。那如果你是age的话,通过命名规范,在章节类中应该有set age的方法存在,那呢,就调用这两个S方法。
02:07
那如果你的类中没有这个S的方法,行不行呢?没有。没有,那就是说我把内容的这个S的方法呀。给他注释一下,那注释就是没有吗。注射它,那就是说没有在的方法,没有在的方法的话,我们当前的赋值行为行不行呢。执行我们的测试代码,这是我们的赋值,这个就不要了啊。我们来看一下,在零一方法中呢,我们是创建了容器对象并调用该B,那此时这个对象的属性能附上值吗?执行零一方法。好,我们看结果,这爆出了一堆的。
03:01
错。那这个错误的话呢,我们看看信息在哪儿呢。我找一下啊,看哪个更明显啊在这呢。就这句话。他说是什么呢?无效的属性,Name是student类中的name属性是无效的,再往后看,后面的信息是什么呢?是这一部分。说B的属性name是不可写的,或者没有一个有效的set方法,那说明呢,是去调用的赛的方法,那你没在的方法,那它当然就是错误了。所以你得有赛的方法,没有赛的方法是不行的,必须得有赛的方法,没有赛的方法是错误的。这是我们的错误的内容。啊,部分。
04:00
必须得有赛的方法。回到我们内容。这两个赛的方法呢,得打开。啊,得打开。我们把这个内容呢写在这,就是说你得有赛的方法,没有赛的方法是报错的。我们需要有赛的方法,没有赛的方法是报错的啊报错的,那实际上我们的它去创建student呢,做赋值,实际上是一个什么样语句呢?实际上它就是这样的一个操作方式,我们自己要做的话,那就是student s1new student对象之后S一点是不是S呀,张三s. Sa20,那你看你自己创建对象调是无仓构造再调塞的方法完成使用赋值吧,那你死不准也是这么干的。
05:08
所以这个赛的方法必须得有,没有怎么执行赛的方法呀,所以它会报错的啊,所以你要想。在配置文件中。通过proper的语句给属性赋值,它对应这个赛的方法必须有没有是错误。好,这是S方法。那现在我们再来深入的看一下。那如果在这个set name中,如果说我不写这个复制语句。这我也不写行不行呢?就是我不写这个。复制一卷。代码能不能够正常执行呢?能不能呢?我们看一下结果,执行零一方法。
06:01
没法法执行呢,我们看没有问题,S的方法执行了吧,只不过是属性没赋值而已,整个程序执行呢,是没有异常的,是正确的,是正常的。那就说明我们程序中。死不认。它和你这个类的定义的规则就是它只是给你执行set方法,对于方法里边的这些代码是由你来控制来决定的,所以赋不赋值是你来决定的论它只是执行了这个赛的方法而已啊。好,那这块我打开吧,打开赋值,那现在这个name这块呢,我想用一个大写的name。啊,那这一块我指定一个hold up case行不行,肯定应该也是可以的。那我现在常运装,我这负的是个什么?是个李四?李四,这块要写一个小写的吧,这样能看出效果呀,那我们再来看一下我们的测试结果。
07:06
此时我们看这个李四,这是变成大写的呀,哎。这是set方法,这里还有一个问题,我们这个set方法的执行是在什么时候执行的呢?它实际上是在构造方法之后执行的。我们给程序中呢,创建出来一个构造方法。不用参数,无参构造,这输出死不认。它会调用类的无参数构造方法创建对象,好,这是无仓构造方法,那我们来看一下。构造方法和set方法中的语句谁先执行谁后执行,也就看他和这个语句谁先执行,谁后执行。执行零一的测试方法。
08:03
好,那通过这个结果我们看到它应该先执行是构造方法呀,那就说先创建对象,再调用S的方法来完成对象创建和属性的赋值,这就是我们的设置注入你需要注意的一些地方。先执行的是。无参构造创建对象在执行S的方法完成赋值。它是调用赛的方法,所以这个方法必须得有。至于方法,里边的代码是由你开发人员决定的,这是我们讲的设置注入。那现在呢,这一部分内容呢,大家应该没什么问题吧。我看一下。嗯。啊。
09:01
冯言彪说,用注解。设置赛的方法可以不?呃,用注解设置set方法可以不可以?注解,可以用在S方法上,是可以的啊,是可以的啊,是可以的。啊,这是s name age,那下面我们再来看一个现象。
我来说两句