千家信息网

Spring中工厂模式的特性是什么

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,这篇文章主要介绍Spring中工厂模式的特性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、饿汉式创建优势工厂创建之后,会将Spring配置文件中的所有对象都创建完成(
千家信息网最后更新 2024年10月01日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 User {    private 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();    }

以上是"Spring中工厂模式的特性是什么"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0