2017.07.19

公司运用Spring框架来干事情,限于之前基础差,并不了解什么是Spring。首收要了解Spring,就需要知道Spring的两种最重要的概念,DI(依赖注入)和AOP(面向切面编程)。DI(依赖注入),来举一个简单的列子,什么叫依赖呢?A调用B,A能够调用B说名一个问题,A与B是依赖关系,在软件上来说就是A与B有依赖关系。IOC(控制反转)那么问题来了,如果不反转会发生什么?A既然不能调用B,那么B如何才能被A使用呢,很明显此时需要通过一些其他方式,比如

B b=new  B();/*这种形式*/

B新建了一个实列,此时A就需要主动去调用。那么反转就是B主动,A被动,控制这中反转就是DI,也就是依赖注入。

举个列子:

通常情况下,假如你有一天在家里口渴了,要喝水,那么你可以到你小区的小卖部去,告诉他们,你需要一瓶水,然后小卖部给你一瓶水! 这本来没有太大问题,关键是如果小卖部很远,那么你必须知道:从你家如何到小卖部;小卖部里是否有你需要的水;你还要考虑是否开着车去;等等等等,也许有太多的问题要考虑了。也就是说,为了一瓶水,你还可能需要依赖于车等等这些交通工具或别的工具,问题是不是变得复杂了?那么如何解决这个问题呢?

解决这个问题的方法很简单:小卖部提供送货上门服务,凡是小卖部的会员,你只要告知小卖部你需要什么,小卖部将主动把货物给你送上门来!这样一来,你只需要做两件事情,你就可以活得更加轻松自在:

第一:向小卖部注册为会员

      第二:告诉小卖部你需要什么

Spring就是小卖部,你就是A对象,水就是B对象
      第一:在Spring中声明一个类:A
      第二:告诉Spring,A需要B

这个列子的理解方式我是参考博客:http://blog.csdn.net/li_tengfei/article/details/6106317

AOP(面向切面编程):将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。盗用网上一幅很经典的图

从这幅图里面应该能够看出在实际使用中是将相同的功能切出来,关注其他核心业务点。

时间: 2024-08-10 19:18:07

2017.07.19的相关文章

2017.07.19 Python网络爬虫之Python语句

1.if else 语句:非此即彼 if 判断条件1: 执行语句1 elif 判断条件2: 执行语句2 elif 判断条件3: 执行语句3 else: 执行语句4 编写一个testIfRamainder7.py 熟悉一下if语句: # !usr/bin/env python# -*- coding:utf-8 -*- def isEvenNum(num): if num%7==0: print(u"%d 可以被7整除" %num) else: print(u"%d 不可以被7

【谜客帝国】第110届云月(庄若云&月思)合擂谜会(2017.07.30)

 [谜客帝国]第110届云月(庄若云&月思)合擂谜会(2017.07.30) 主持:瓷    计分:手手 1.“接天帆影入残云”(10笔字)蚕/月思 [注:面出陈德永<客居月余归后寄友人>.残云,别解提音.] 2.“西风长笛水边楼”(9笔字)洙/月思 [注:面出张养浩<黄州道中>:长笛,象形“一”.] 3. 河间元琛最豪首(2字铁道线路名)玉昌/月思 [注:典据<洛阳伽蓝记>,“而河间王(元)琛最为豪首”:青海玉树州至西藏昌都市的铁路线称为“玉昌线”.] 4. 

2017.02.19学习C#的第二天,今天我学到了什么?

2017.02.19,今天是学习C#的第二天,今天学习的是: 1.数据类型:(以下是现阶段编程中最经常用到的类型) (1)整型 (2)浮点型 (3)字符型 (4)布尔型 (5)字符串型 (6)日期时间型 2.变量/常量 3.类型转换 (1)显示转换 (2)隐式转换 4.转义字符 一,基本数据类型介绍 1.整形(主要差别在取值范围) (1)byte 取值范围(0--225),超出后系统报错. (2)short 取之范围:byte < shor t< int      快捷方式为Int16 (3)

第一期周二航拍视频分享 2017/07/10

2017/07/10 分享方式:1.讲解航拍镜头语言 2.以一个经典视频为例讲解其中所用到的航拍语言  3.最后再看一个视频,同时大脑应思考视频中出现的镜头语言 1.讲解航拍镜头语言 航拍基本动作 直飞 1.直线向前飞,镜头向前: 这是最常用的手法之一,一般拍摄海岸线.沙漠.山脊.笔直的道路等等也多用这种手法. 画面中镜头向前移动,也可从地面慢慢抬头望向远处,镜头一气呵成. 2.直线向前飞,镜头俯瞰: 正俯的镜头常用于拍摄城市.森林,特别是一条笔直的路.一排整齐的车辆,树,房子等等. 直线向前飞

【第三组】冲刺会议 2017.7.19

冲刺会议 日期:2017.7.19 开发小组:Geomestry 冲刺经理:程立智 成员: 程立智 李明伦 郑昊 蔡镇泽 温志成 汪涵 成员:程立智 完成工作:完善全局设置 所遇问题: 夜间模式设置双击有bug 下一步工作:重构代码 成员:李明伦 完成工作:收集关卡信息素材 所遇问题:还没有将素材实例化 下一步工作:将素材实例化 成员:郑昊 完成工作:找logo素材 所遇问题:无 下一步工作:继续实现UI大小自适应 成员:蔡镇泽 完成工作:完成了绘制直线自动机 所遇问题: 自动机实现有难度,编写

日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09   据日本政府提供的数据,日本2018年应届毕业生的"求人倍率"已经达到了1.78倍.换言之,就是100名大学生里有178个就业岗位可选择,即使所有大学毕业生都进入劳动力市场,也还有78个岗位空缺.劳动力现状是寒冷冬天,而学生们确实迎来了就业春天. 在众多岗位当中,日本的信息技术(IT)领域采用的外国人留学生最多.去年,已经在日本企业就职的留学生当中(除去制造行业),27.3%的毕业生进入了IT行业.根

2017.12.19 2周2次课

2017.12.19二周第二次课 2.10 环境变量PATH echo用来输出PATH的值.PATH前面的$是变量的前缀符号 1.你的命令在上述几个目录里面,在输入命令时就不用输入绝对路径,直接使用.因为在输入命令时,系统会在上述的几个目录里去寻找这个命令.当然也可以输入绝对路径 Copy命令[ls]到目录tmp下,并改名[ls2],二者实现的功能一样 直接输入命令[ls2],确不行.因为命令[ls2]不在"/usr/local/sbin:/usr/local/bin:/usr/sbin:/us

AI Summit(2018.07.19)

AI Summit 时间:2018.07.19地点:北京丽都皇冠假日酒店 原文地址:https://www.cnblogs.com/xuefeng1982/p/10331578.html

Murano Weekly Meeting 2016.07.19

Meeting time: 2016.July.19 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1.Backports Link:  https://etherpad.openstack.org/p/murano-stable-backports/ 2.Convergence so both of our CI servers are running heat with convergence n