蚌埠城乡建设 局网站,wordpress ftp免密码破解,软件外包公司介绍,如何设置网站兼容性简单介绍#xff1a;
在我们之前使用某个对象#xff0c;那么就要创建这个类的对象#xff0c;创建对象的过程就叫做实例化。对于Spring来说#xff0c;实例化Bean的方式有三种#xff0c;分别是构造方法实例化#xff0c;静态方法实例化#xff0c;实例工厂实例化。我…简单介绍
在我们之前使用某个对象那么就要创建这个类的对象创建对象的过程就叫做实例化。对于Spring来说实例化Bean的方式有三种分别是构造方法实例化静态方法实例化实例工厂实例化。我们会对每一种方法不同和代码实现做详细的解释。
使用方法
构造方法实例化
我们之前创建Bean对象的过程都是使用的构造方法这个构造方法说的就是Bean的构造方法现在我们继续打开我们之前的项目我们对user对象做一点修改 我们在无参的构造方法中添加一个输出语句输出一句话即可主要是为了观察如果这句话被输出了那么就说明我们确实是通过构造方法的方式进行实例化对象。 我们看到确实是输出了我们想要的看到的一句话那么就是证明了我们之前配置的过程就是试用了构造方法的方式创建的对象。
静态方法实例化
使用静态方法实例化的方式就是先创建一个静态工厂类这个类中有一个方法它的返回值是我们想要创建的对象这个模式也就是典型的Java的工厂模式。然后我们配置的时候我们需要配置的就不是我们的user类了而是配置我们的工厂类并且添加一个新的属性这个属性用于指向我们工厂类中创建对象的方法经过工厂类去创建我们的对象
首先我们来创建静态工厂类
package com.spring;public class staticFactory {public static user userFactory(){System.out.println(使用静态方法的方式创建了user的对象);return new user();}
}其实非常的简单无非就是我们需要定义一个静态方法然后方法的返回值是我们想要创建的对象这里需要解释一下为什么是静态方法
静态方法有一个特殊的性质就是它可以不用创建方法直接使用类名调用这也就是他和实例工厂创建对象的最大的不同。
配置好了之后我们来到我们的Bean管理XML配置文件中 注意红框中的代码这时我们需要添加的代码其中id是唯一标识class指向工厂类的全路径factory-method指向的就是我们创建对象的方法这就是跟之前不一样的地方然后我们就可以来到我们的测试类来修改我们的测试类 可以看到也输出了使用静态方法创建user对象的语句为什么后面跟着又输出了使用构造方法进行实例化呢因为我们在静态方法中创建对象使用了new关键字而new关键字创建方法使用的还是构造方法的方式当然创建对象可以不通过构造方法但是因为这种方式最简单有条件的可以尝试一下是用其他方式创建对象。
实例工厂实例化
实例工厂实例化其实就是将之前我们使用静态方法实例化中创建对象的方法的static关键字去掉因为在有些时候我们创建类的方法无法写成一个静态方法我们就可以使用实例工厂实例化的方式创建对象。我们类比静态方法的方式实例工厂与他的区别就是将创建对象的方法中的static关键字去掉在配置文件中我们需要先创建工厂类的对象然后使用使用工厂类的对象去调用创建类的方法所以我们要先编写工厂类的bean然后在创建user对象的bean标签中不使用class指向工厂类而是使用一个新的属性叫做factory-bean来代替我们的classfactory-bean的值指向的是创建工厂类的bean标签的id属性的值并且也同样添加一个属性factory-method指向创建对象的方法
首先我们来创建这个工厂类 我们在工厂类的创建对象的方法中输出一句话如果这句话在我们创建对象的时候输出到了我们的控制台上那么就说明我们的配置正确并且理论也是正确的。
然后编写Bean管理XML配置文件 注意红色框里面的属性的值和上面创建工厂类的bean的id的值是一样的这样就建立了两个bean之间的关系就可以根据工厂类的对象去调用创建Bean的对象了然后我们去测试类进行测试
运行结果 可以看到我们输出的结果和我们预想的是一样的这也就证明了我们的理论是正确的那么以上就是我们Bean实例化的三种方式的基本使用
注意点
之前我们创建的都是类的对象但是如果我们现在有一个接口没有实现类比如之前我们学习过的在MyBatis的接口话开发中我们的mapper一直都是一个接口的形式并没有实现的类那么这时候我们该使用何种方式创建对象呢
其实我们创建接口的对象最简单的方式就是使用静态方法的方式原理就是我们在静态方法中获取这个接口的动态代理对象然后让方法去返回这个动态代理对象即可。