详解Spring工厂特性

网友投稿 487 2023-01-19

详解Spring工厂特性

详解Spring工厂特性

一、饿汉式创建优势

工厂创建之后,会将Spring配置文件中的所有对象都创建完成(饿汉式)。

提高程序运行效率。避免多次IO,减少对象创建时间。(概念接近连接池,一次性创建好,使用时直接获取)

二、生命周期方法

自定义初始化方法:添加“init-method”属性,Spring则会在创建对象之后,调用此方法。

自定义销毁方法:添加“destroy-method”属性,Spring则会在销毁对象之前,调用此方法。

销毁:工厂的close()方法被调用之后,Spring会毁掉所有已创建的单例对象。

分类:Singleton对象由Spring容器销毁、Prototype对象由JVM销毁。

三、生命周期注解

初始化注解、销毁注解

import javax.annotation.PostConstruct;

import javax.annotation.PreDestroy;

@PostConstruct //初始化

public void init(){

System.out.println("init method executed");

}

@PreDestroy //销毁

public void destroy(){

System.out.println("destroy method executed");

}

四、生命周期阶段

单例bean:singleton

随工厂启动创建 ==》 构造方法 ==》 set方法(注入值) ==》 init(初始化) ==》 构建完成 ==》随工厂关闭销毁

多例bean:prototype

被使用时创建 ==》 构造方法 ==》 set方法(注入值) ==》 init(初始化) ==》 构建完成 ==》JVM垃圾回收销毁

五、用例

User实体类

package com.cos.qf.entity;

import javax.annotation.PostConstruct;

import javax.annotation.PreDestroy;

import java.util.*;

public class UAeFofser {

private http://Integer id;

private String password;

private String sex;

private Integer age;

private Date bornDate;

private String[] hobbys;

private Set phones;

private List names;

private Map countries;

private Properties files;

@PostConstruct //初始化

public void init(){

System.out.println("被初始化了");

}

@PreDestroy //销毁

public void destroy(){

System.out.println("被销毁了");

}

public User() {

System.out.println("执行了无参构造");

}

public void setId(Integer id) {

System.out.println("set-id");

this.id = id;

}

//get和set方法

}

application-config.xml配置文件

测试方法:不能用ClassPathXmlApplicationContext的父类(ApplicationContext)去关闭不然就报错

@Test

public void text4() {

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml");

ctx.close();

}

结果:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:移动应用开发专业招聘情况(移动应用开发专业招聘情况报告)
下一篇:如何构建小程序生态(小程序环境搭建)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~