淄博网站建设 优易科技,3d室内效果图制作公司,国内新闻最新消息10条简短2021,百家 主题 wordpress文章目录 1. 前言2. name3. lazy-init4. init-method5. destroy-method6. factory-method和factory-bean 1. 前言
在之前的文章中.写到过bean的常用配置,当时只是介绍了bean标签中的常用属性配置:class,id和scope这三个属性. 不熟的小伙伴可以看一下这篇文章:【Spring】IOC容器… 文章目录 1. 前言2. name3. lazy-init4. init-method5. destroy-method6. factory-method和factory-bean 1. 前言
在之前的文章中.写到过bean的常用配置,当时只是介绍了bean标签中的常用属性配置:class,id和scope这三个属性. 不熟的小伙伴可以看一下这篇文章:【Spring】IOC容器与Bean的常用属性配置 本文介绍bean的一些其它属性配置.以及静态工厂和实例工厂
2. name
在Spring中bean的name属性和id相同,是一个字符串类型的标识符用于唯一地标识一个bean。它可以通过XML配置文件或注解的方式来指定。 ⭐与id不同的是,name属性可以执行多个值 例如: 通过name属性的值同样可以得到bean对象
3. lazy-init
Spring的lazy-init属性用于控制bean的初始化时机。当设置为true时表示该bean在第一次被使用时才会进行初始化当设置为false时表示该bean在容器启动时就进行初始化。
默认情况下bean在容器启动时就进行初始化。lazy-init初始值为false
bean classcom.exaple.entity.Student idstudent/bean在Student类中的构造方法 设置一个输出语句,在创建对象时一定会调用构造方法,只要看什么时候打印输出语句就可以了
public class Student {private int age;private String name;public Student() {System.out.println(调用了构造方法);}
}如图: 我只是创建了Spring的容器,Student中的构造方法就打印了,说明在Spring容器创建时,bean对象就已经进行初始化了
如果将bean标签中的lazy-init设置为true
bean classcom.exaple.entity.Student idstudent lazy-inittrue/bean可以看到并没有任何输出语句 lazy-init就是控制bean是什么时候进行初始化的,类似于懒汉模式
4. init-method
Spring的init-method属性用于指定一个初始化方法该方法将在bean创建后立即执行。
实例:
bean classcom.exaple.entity.Student idstudent init-methodinit/beanData
AllArgsConstructor
NoArgsConstructor
public class Student {private int age;private String name;private void init(){System.out.println(执行了初始化方法);}
}这个属性很简单,就不多说了
⭐需要注意的是 init-method设置的方法必须是 空参 的
5. destroy-method
与init-method方法类似,只不过destroy-method设置的方法是在容器销毁时调用的方法
bean classcom.exaple.entity.Student idstudent destroy-methoddestroy/beanData
AllArgsConstructor
NoArgsConstructor
public class Student {private int age;private String name;private void init(){System.out.println(执行了初始化方法);}private void destroy(){System.out.println(执行了容器销毁时的方法);}
}destroy-method与init-method方法相同,同样需要是 空参 的方法
ClassPathXmlApplicationContext的实例对象的close方法就是销毁容器的方法.而ApplicationContext则没有close方法
6. factory-method和factory-bean
factory-method和factory-bean都是Spring框架中用于实现依赖注入的两种方式。
factory-method使用工厂方法模式通过在配置文件中指定一个工厂类和方法来创建对象。这种方式需要先定义一个工厂类然后在配置文件中指定该工厂类的全限定名和方法名。factory-bean使用工厂Bean模式通过在配置文件中配置一个工厂Bean来创建对象。工厂Bean是一个普通的Spring Bean它可以有自己的属性和方法也可以有其他的Bean作为其属性。在使用时Spring会自动调用工厂Bean的某个方法来创建对象。
两种方式的区别在于
factory-method需要先定义一个工厂类而factory-bean则不需要。factory-method只能创建一个类型的对象而factory-bean可以创建多个不同类型的对象。factory-method需要在配置文件中指定工厂类和方法名而factory-bean只需要配置一个普通的Bean即可。