夕阳西下,小卤蛋和妲己姐姐竟然手牵手讨论Spring...

大家好,我是程序员青戈,一个被Bug耽误了才艺的程序员👦专注于Java领域的知识分享和技术交流,每天会给大家带来Java学习的干货教程📚

微信搜索公众号 Java学习指南,回复 面试 领取一线大厂面试题一套😋加号主微信 xia_qing2012,可以进技术交流学习群一起共同进步哦😊

忙了很久,没时间写博客,感觉很惭愧,对不起CSDN各位大佬们对卑下的厚爱。

大佬

今天决定发功,写一篇关于Spring的文章,话不多说,开搞!


话说这天,小鲁班一个人蹲着峡谷红爸爸旁边的草丛里,托着自己可爱的腮帮子思考人生。
在这里插入图片描述

正巧,妲己小妹妹摇着性感的红尾巴路过,看到小鲁班郁闷的模样,决定上去逗逗他。
在这里插入图片描述

妲己:小卤蛋,你在想啥呢,那么出神,是不是昨晚金金做的卤蛋不合胃口,在生气呢

小卤蛋:啊…妲…妲己小姐姐…没…没有…(悄悄别过脸去掩饰自己慌张的表情)

妲己: (转动迷人的大眼睛,凑近小卤蛋)是嘛?小卤蛋,那你为啥不敢看我呀…

小卤蛋:(闻到一股浓浓的香水味,打了一个激灵,往后挪了几步)啊…是这样的…妲己姐姐,我不是报名峡谷程序员学院的Java课程了吗… 可是学到Spring这个知识点的时候有点蒙圈了…现在很受伤…

妲己:没有心,就不会受伤。

小卤蛋:??

妲己:sorry,串台词了呃…

小卤蛋:害…

妲己:正好我学完了Spring,那我来给你讲讲吧?

小卤蛋:(很兴奋,脸涨的通红)好呀,好呀,妲己姐姐…

妲己:emm…我先问你一个问题,你知道Spring中用到哪些设计模式吗?

小卤蛋:(有点心虚) 知道一点…

妲己:那你说说Spring为什么使用单例模式?

小卤蛋:(这个我看过,得意)是为了实现资源共享?某些资源创建的成本很高,比如数据源等…

妲己:嗯,是的,

Spring的单例模式核心方法通过AbstractBeanFactory实现的。来看看源码:

public Object getSingotonByBeanName(String beanName){
    Object bean=getSingleton(String beanName, boolean allowEarlyReference)if(bean==null){
        synchronized (this.singletonObjects) {
                //双重校验
                Object singletonObject = this.singletonObjects.get(beanName);
                if (singletonObject == null) {
                    singletonObject = singletonFactory.createBean();
                    addSingleton(beanName, singletonObject);
                }
                return singletonObject;
            }
    }
}

Spring一开始会尝试获取bean,如果没有,那就加锁,Double Check之后创建Bean,创建完之后缓存在singletonObjects里面,之后再用的时候直接取这个单例对象就可以了。

小卤蛋:噢噢…我好像懂了,我之前看过node哥哥的单例模式(面试单例小技巧),有印象的…

妲己:哈哈,卤蛋,没想到你这么好学啊!

小卤蛋:嘿嘿,我这不是看到大家都很努力,我不能拖后腿啊

妲己:不错,那你知道还有哪些其他的设计模式吗?

小卤蛋:呃…这个…好像还有…(拍脑袋思考)

妲己:好啦,我来给你普及一下吧

小卤蛋:好耶(抓住妲己的胳膊晃啊晃)

妲己:(摸了摸小卤蛋的脑袋,感觉他真可爱死了,忍不住又亲了一口)

小卤蛋:(大羞羞,但还是红着脸稳稳的坐着)

妲己:小卤蛋,我跟你说哈,Spring除了单例模式还有很多种设计模式呢,作为Java领域最优秀的框架,它有很多值得我们借鉴的地方哦

比如代理模式,可以做到既不修改基类(无侵入),又可以灵活的扩展它的功能,像我们熟知的AspectJ、CGLIB、JDK动态代理等

比如观察者模式,可以做到代码解耦,像Spring中的事件通知机制就是。

比如简单工厂方法模式,由BeanFactory的实现类来统一生产bean,实现bean创建时干预、统一管理等。

比如模板方法模式,通过模板代码来减少冗余代码,模板类提供模板方法,调用类接口提供自定义的通用方法,调用类作为参数,在执行完模板方法时,实现自己的业务逻辑。

还有责任链模式、策略模式等等…

小卤蛋:哇喔,妲己小姐姐你好厉害呀,会这么多!

妲己:哈哈,没有啦,还不是我前段时间偷偷关注了node哥哥,从他那里学到了很多Java小技巧呢!

小卤蛋:搜嘎,那我也去找node哥哥给我补补课去

妲己:好呀,咱俩一起,好久没看到node哥哥了呢,嘻嘻…


夕阳下,只剩小书包和妲己手牵手一高一矮的身影,唯美而荡漾…
在这里插入图片描述




感谢大家的阅读,创作不易,能否请您小手点一点下方的 一键三连 支持一下作者呢😊

最后送诸位一句话:但行好事,莫问前程。再见~

  • 40
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 42
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员青戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值