• 之前已经学习过web三层(数据库链接层dao,业务逻辑控制层service,用户层web)。

  • 在开发过程中,我们不断引入更加优秀的工具的目的都是在安全、高效的基础上,简化开发,和易于维护。

  • 所以引入spring框架的目的就是解决整个开发过程中各层之间的衔接问题,让各层之间的相互依赖程度降低,来达到简化开发的目的。

那么spring是通过哪些方法来实现这种目的呢?

1.控制反转(IOC:Inversion of Control

就是之前我们创建新对象的时候都是用new来创建,而这样带来的问题就是,程序编译为class后不能修改,不易维护。

所以我们需要将创建对象的权利交给spring容器(IOC容器),把对象的创建、初始化、销毁等工作的权利交给spring容器,就叫IOC。

2.依赖注入(DI:Dependency Injection)

以前我们创建了对象以后,需要给他的属性赋值,但在spring中,这个赋值的过程就不叫赋值了,叫依赖注入。

3.面向切面编程(AOP:Aspect Oriented ming)

我们在开发过程中,会有很多重复的代码,会造成代码冗余。

为此我们通常是将公有代码抽出去,做成一个新的方法,每次使用时直接调用,但这样还不好,因为再次插入一个新功能时,还要手动调用,不仅修改麻烦,也会造成代码冗余。

在spring中,提供了一个更优秀的解决方法,就是把抽取方法不仅仅局限在一个模块或功能中,而是放在整个执行流程来看,进行一个全局的优化,这样的思想,就叫AOP。

简单的认识了IOC,DI,AOP接下来我们就来看看在spring中如何实现。

1.IOC创建对象的四种方法

链接:https://www.cnblogs.com/sxtr/p/10878985.html

最新文章

  1. Dynamics CRM 2015-如何修改Optionset Default Value
  2. jquery更改输入框type为密码框password
  3. 又一次的Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
  4. vim配色方案设置(更换vim配色方案)
  5. MySQL级联删除的问题
  6. 短作业优先调度算法(SJF)
  7. (状压) Marriage Ceremonies (lightOJ 1011)
  8. 【C#学习笔记】函数调用
  9. JS input文本框禁用右键和复制粘贴功能的代码
  10. 日志文件 的管理 logrotate 配置
  11. iOS9.3 Could not find Developer Disk Image 真机调试错误解决办法
  12. SQLite3简单入门及C++ API
  13. Python之文件与目录
  14. 如何将Ubuntu部署到U盘中,用U盘安装linux操作系统
  15. ORACLE中用rownum分页并排序的SQL语句
  16. git 添加、提交、推送
  17. Python_迭代器_35
  18. 四个session
  19. Dictionary,hashtable, stl:map有什么异同?
  20. python 回溯法 子集树模板 系列 —— 18、马踏棋盘

热门文章

  1. linux日常管理-rsync_ssh方式
  2. 功能:formatter 表单提交 拼接参数的形式
  3. 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞
  4. hdu1065
  5. C# 绘制图表(柱状图,线性图,饼状图)
  6. 【redis对象,集合序列化Demo】
  7. 消息队列--RabbitMQ(二)
  8. .Net Core中依赖注入服务使用总结
  9. [C++]C,C++中使用可变参数
  10. 使用js页面添加或删除标签