spring创建对象的方式

  最近在学习spring框架,就了解到spring框架,有两大核心,一个是“IOC”,即控制反转。spring可以看成一个容器,它可以帮助我们管理并创建对象。就不再是我们程序员自己去new。

 

1、我们先创建实体商品类(省略set,get)

 

 

2、我们创建配置文件application.xml,这也是我们spring中十分重要的配置文件,接着我们将我们的对象注入到spring容器。

 

 3---1---我们编写测试类,测试该goods1对象是否能够通过spring容器创建

 

 

 

 通过结果发现,我们的goods确实被创建,而且确实通过该类的无参构造方法创建的。


 

 

3---2---下面我们在试一试通过Good的无参构造方法创建对象,通过set赋值,下面我们修改application.xml配置文件,

 

 

 

 

测试类:

 

 

运行结果:

 

 可以看到,我们依然是通过无参构造方法创建的对象,只是通过set方法赋值的(可以通过application.xml的property标签看出,property就是属性的意思嘛),并且这个是先创建对象,后面再赋值的。

为了验证该结论呢,我们把Good的set方法注释掉

 

 可以看到,报出错误,我们的name属性确实是缺少set方法。


 

3---3-----下面我们就试试通过Good的全参构造方法创建对象,也是一样修改application.xml文件。

 

 

运行结果:

 

 

可以看到,我们的全参构造方法被调用了,good3确实被创建了,并且也成功赋值。

 


 

 

 

4----1----,在我们spring中也有一种方法创建对象,就是通过工厂方法创建,下面我们编写工厂类

 

 

 

同样我们去编写application.xml文件,为了输出结果简洁,我把前面的内容注释掉。

 

 测试类:

 

 

运行结果:

 

 

可以看到,我们通过我们的工厂的静态方法,创建了good4。

注意:一定要是静态方法,即static修饰,我们注释掉GoodsFactory的static关键字,结果↓

 

 可以看到,报出错误,没有找到匹配的静态方法


 

 

4----2-----

下面我们试一试非静态方法,同样修改配置文件

 

 

 

测试类:

 

 

运行结果:

 

 可以看到,我们是先创建的商品工厂,再创建的商品类,这也是符合逻辑的。

 

 


 

 

下面我们小结一下:

1---通过类的无参构造方法创建

2--通过类的有参构造方法创建(通过set赋值或者是直接有参构造方法赋值)

3--通过工厂方法(静态工厂方法或者是非静态方法)

 

posted @ 2021-06-08 21:45  kunmin  阅读(288)  评论(0编辑  收藏  举报