美文网首页
spring 对象创建单例、多实例应用场景

spring 对象创建单例、多实例应用场景

作者: 小灰灰_5c75 | 来源:发表于2020-06-13 19:21 被阅读0次

    spring配置文件或注解中可以设置对象为singleton(单例)或 prototype(多实例)
    单例即希望全程使用的对象,常驻内存,常常使用,属性和方法返回值一般不会修改只用于获取;
    多实例用于每次调用的返回值和属性值皆会发生变化如传输对象DTO这类天然需要传值并且每次都可能不同的对象实例;

    应用场景说明:
    多实例:值得一提的是在mvc的框架中使用以往的写法就是action、bo、dao中各自new下一层的对象在类中使用,这里的对象就是多实例的表现,在没有IOC的管理下,这类实例一般直接交给jvm清理,容易出现各种问题;通过bean的生命周期管理,可以更明确地处理这些层层依赖的对象,所以学好IOC是解耦和梳理对象实例的必要过程。
    单实例:配置实例:这应该可以覆盖所有单例应用场景,包括 项目使用的字典翻译常量信息、各种数据源连接信息(配合读取配置文件使用)、项目文件目录信息、其他内外部工具类(不包括静态工具类)、统一资源处理类(计数器、资源管理类)、多线程线程池(线程资源统一)等

    总结:
    多实例的使用场景需要符合业务并行无影响的原则,保证共享数据的时效性并且多条相同业务之间无影响就使用多实例;单实例应用场景其实只有一个,就是保证共享资源的唯一性,如果需要资源共享且共享时刻所有数据需要统一即可使用单例,也可以用强一致性来保证单例但是会牺牲时间,这在非关系型数据库中有所体现。

    相关文章

      网友评论

          本文标题:spring 对象创建单例、多实例应用场景

          本文链接:https://www.haomeiwen.com/subject/ugeztktx.html