目录

一、Spring

1、Spring是什么?

2、Spring 的优点

3、Spring 的IOC理解

4、什么是DI


一、Spring

1、Spring是什么?

Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,他使得开发者只需要关心业务需求。主要包括以下七个模块:

1.)Spring Context:提供框架式的bean访问方式以及企业级功能(JNDI、定时任务等)

2.)Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;

3.)Spring AOP:AOP服务;

4.)Spring Web:提供了基本的面向Web的综合特性,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器;

5.)Spring MVC:提供面向Web应用的Model-VIew-Controller,即MVC实现;

6.)Spring DAO:对JDBC的抽象封装,简化了数据发访问异常处理,并能统一管理JDBC事务;

7.)Spring ORM:对象有的ORM框架的支持

2、Spring 的优点

1.)Spring 属于低侵入式设计,代码的污染极低;

2.)Spring 的DI机制将对象之间的依赖关系交由框架处理,减低组合的耦合性;

3.)Spring 提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。

4.)Spring对于主流的应用框架提供了集成支持

3、Spring 的IOC理解

IOC(invrsion of Control) 控制反转,指将对象的控制权转移给Spring框架,由Spring来控制对象的生命周期(比如创建、销毁)和对象之间的依赖关系

最直接的表达就是,以前创建对象的时机和主动权都是由自己把控的,如果在一个对象中使用另外的对象,就必须主动通过new指令去创建依赖对象,使用完后还要销毁(比如Connection等),对象始终会和其他接口或类耦合起来。而IOC是由专门的容器来帮忙创建对象, 将所有的类在Spring容器中登记,当需要某个对象时不再需要自己主动去new了,只需告诉Spring容器,然后Spring容器就会在系统运行到适当的时机,把你想要的对象主动给你。也就是说,对于某个具体的对象而言,以前由自己控制他所引用对象的生命周期,而在IOC中,所有的对象都被Spring控制,控制对象生命周期的不再是引用他的对象,而是Spring容器,由Spring容器帮我们创建、查找及注入依赖对象,而引用对象只是被动的接受依赖对象,所以这叫控制反转。

4、什么是DI

IOC的一个重点就是在程序运行时,动态的向某个对象提供他所需要的其他对象,这一点是通过DI(Dependenpy Injection,依赖注入)来实现的,即应用程序在运行时依赖IOC容器来动态注入对象所需的外部依赖。而Spring的DI具体就是通过反射实现注入的,反射允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性。

Java SSM面试篇相关推荐

  1. JAVA后端面试100 QA之第一篇

    转载自  JAVA后端面试100 Q&A之第一篇 1. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 实现机制不同 ...

  2. Java SSM篇5——SpringMVC

    Java SSM篇5--SpringMVC 1.MVC模式 MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想 M(model)模型:处理业务逻辑,封装实体 V(view) ...

  3. Java SSM篇3——Mybatis

    Java SSM篇3--Mybatis 1.JDBC存在的问题 数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能 sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大 ...

  4. Java SSM篇2——框架的基本认识

    Java SSM篇2--框架的基本认识 1.什么是框架 框架就是一套规范,既然是规范,你使用这个框架就要遵守这个框架所规定的约束 框架可以理解为半成品软件,框架做好以后,接下来在它基础上进行开发 2. ...

  5. Java分布式锁看这篇就够了,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  6. 80后程序员感慨中年危机,Java程序员最新职业规划,面试篇

    前言 一次偶然,从朋友那里得到一份"java高分面试指南",里面涵盖了25个分类的面试题以及详细的解析:JavaOOP.Java集合/泛型.Java中的IO与NIO.Java反射. ...

  7. 《Java 后端面试经》微服务篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  8. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  9. 进大厂一条龙服务(Java核心面试知识点+一线大厂Java笔试面试题+月薪3万Java优秀简历模板),看这篇就够了

    你有没有觉得Java_工程师竞争压力大.就业困难?不知道面试Java工程师应该准备些什么?.. 现在一切都解决了!你想要的干货知识和面试题统统在这,还有月薪3万Java优秀简历模板,快拿回去嚼烂吧! ...

最新文章

  1. 12 集成测试方法之大棒集成方法
  2. mybatis10--自连接多对一查询
  3. c++经典书籍--深度探索C++对象模型
  4. DCMTK:DSRDocument类的测试程序
  5. 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐
  6. JAVAWEB技术之七过滤器
  7. gc 吞吐量和停顿时间_GC对吞吐量和延迟的影响
  8. java 锁_Java之线程并发的各种锁、锁、锁
  9. vi(vim)编辑器 学习笔记
  10. 需求、需求工程与需求工程师 — 2.需求的来源
  11. LeetCode 542 01 矩阵
  12. Maven学习总结(28)——Maven+Nexus+Myeclipse集成
  13. java求sobel算子代码_sobel算子原理与实现
  14. 数据包的分类和调度-Linux TC的另一种解释
  15. mybatis支持拼音、汉字模糊查询
  16. python获取图片曲线数据_从图片中提取曲线坐标数据
  17. 关于js导入Excel时,Excel的(年/月/日)日期是五位数字的问题。以及对Excel日期存在的错误的分析和处理。
  18. 用 .pth 文件附加 Python 模块搜索路径
  19. Python9-前端基础知识-day47
  20. 声学的一些基本知识(1)

热门文章

  1. STC15W408AS的485串口实现自发自收
  2. Latex行距调整总结
  3. 01入门及简单应用-ReentrantReadWriteLock原理-AQS-并发编程(Java)
  4. 刀片服务器的性能由谁决定,决定使用刀片服务器前一些需要考虑的因素
  5. Https 忽略证书验证
  6. 360网站卫士推出风行计划 号称速度提升5倍
  7. 请等待您的伙伴确认该请求_您想成为产品负责人吗?您最好知道等待什么
  8. docker容器无法访问宿主机报出 No route to host
  9. 基于大连理工大学的情感词汇表的中文情感分析
  10. 使用switch-case来实现银行存款问题 计算存款利息。有N元,想存M年。有3种方法可选: (1)活期,年利率为r1 0.36% (2)一年期定期,年利率为r2 2.25% 从键盘获取存款年