spring boot 解决生产环境下多线程调用FTP流被关闭问题

在 spring boot 下把 FTP 工具类以类的型式注入到 spring 容器中。FTP 工具类在实际应用过程中,如果是单例的对象会出现问题:当线程 A 调用FTP工具时调用连接,线程B 同时调用FTP并使用完闭关闭流,这时A的连接会就被关闭了。

解决方案:
将 Bean 置为多例对象。这样当线程每次调用该 Bean 就会生成一个新对象,互相之间不影响。

public class FtpUtil {
}
@Configuration
public class FtpUtilConfig {

    @Autowired
    private FtpProperties ftpProperties;
    @Bean
    @Scope("prototype")
    public FtpUtil ftpUtil () {
        FtpUtil ftpUtil = new FtpUtil();
        return ftpUtil;
    }

}
@Configuration
@ComponentScan("com.fund.common")
public class FtpScope{
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext(FtpScope.class);
        FtpUtil f1 = context.getBean(FtpUtil.class);
        FtpUtil f2 = context.getBean(FtpUtil.class);

        System.out.println(p1);
        System.out.println(p2);
    }
}
结果
com.fund.common.util.FtpUtil@7dac3fd8
com.fund.common.util.FtpUtil@425357dd
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,276评论 19赞 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,416评论 6赞 342
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 43,055评论 11赞 349
  • ——和琴莞《念梅》 雪莹梅亦俏,傲骨立云霄。 月夜知寒苦,晨曦不自娇。
    不惑而歌阅读 430评论 7赞 15
  • “妈妈,我自己走进去,你不用进去了。"背着书包的小家伙对我说。 十分惊讶的我,看着这个迅速进入学生时代的小家伙,内...
    向着太阳奔跑的石头阅读 310评论 0赞 0

友情链接更多精彩内容