Spring概况

Spring的简介

Spring是一个轻量级的控制反转和面向切面的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的:

目的:解决企业应用开发的复杂性

功能:使用基本的javaBean代替EJB

范围:任何java应用

Spring的起源

Spring的存在是因为它自身拥有得天独厚的优势:

1、它定位的领域是许多其他流行的framework没有的

2、Spring是全面的和模块化的

3、它的设计从底部帮助你编写易于测试的代码

4、Spring是潜在的和一站式解决方案

Spring的优点

Spring的优点:

1、低侵入式设计,代码污染极低

2、Write Once, Run anywhere

3、DI有效的降低了耦合度

4、AOP提供了通用任务的集中管理

5、ORM和DAO简化了数据库访问

6、高度开放性,并不强制

Spring的优点带来的好处:

1、可以有效组织中间层对象

2、使用统一的配置文件

3、促进良好的编程习惯,减少编程代价

4、易于单元测试

5、使EJB成为一种备选

6、为数据存取提供了一致的框架

Spring的特点

1、方便解耦,简化开发

2、AOP编程的支持

3、声明式事务的支持

4、方便程序的测试

5、方便集成各种优秀框架

6、降低JavaEE API的使用难度

7、Spring的源码是经典学习范例

Spring的基本框架

1、核心容器    Spring Core

2、应用上下文    Spring Context

3、AOP模块    Spring AOP

4、JDBC和DAO模块

5、对象实体映射    Spring ORM

6、Web模块    Spring Web

7、MVC模块    Spring Web MVC

Spring的总结  

    1、Spring带来了复杂的J2EE编程的春天

2、它的核心是轻量级的IoC容器,它的目标是为J2ee提供全方位的整合框架,在Spring框架下实现了多个子框架的组合,这些子框架之间彼此独立,也可以使用其他的框架方案来替代它们

3、Spring希望为企业应用提供一站式解决方案


Spring之IOC

浅谈IoC

IOC是Spring的核心,贯穿始终。所谓IOC,对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系:

1、传统开发模式:对象之间相互依赖

2、IoC开发模式:IOC容器安排对象之间的依赖

DI依赖注入

IOC的另外一个名字叫做依赖注入,所谓依赖注入,就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中,所以,依赖注入和控制反转是从不同的角度描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。

IOC的好处

IOC在编程过程中不会对业务对象构成很强的侵入性,使用IOC之后,对象具有更好的可实行性,可重用性和可扩展性:

1、降低组件之间的耦合度

2、提高开发效率和产品质量

3、统一标准,,提高模块的复用性

4、模块具有热插拔特性

IOC的通俗理解

IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理

DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现

Spring之AOP

什么是AOP

AOP的基本概念

AOP与OOP的关系

AOP的主要功能

AOP的主要意图

AOP的存在价值

AOP专门用于处理系统中分布于各个模块中的交叉关注点问题,在J2EE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务处理、安全检查、缓存、对象池管理等,AOP已经成为一种非常常用的解决方案。

AOP的原理剖析

AOP代理其实是由AOP框架动态生成的一个对象,该对象可作为目标对象使用。AOP代理所包含的方法和目标对象的方法如下:

代理对象的方法=增强处理+被代理对象的方法

AOP的关键概念

切面    Aspect

连接点        join Point

通知            advice

切入点        point cut

引入            introduction

目标对象     target object

AOP代理    AOP Proxy

织入            Weaving

AOP的通俗理解

一个组件A,不关心其他常用的组件服务B,但是这个组件A使用组件B的时候,不是组件A自身去调用,而是通过配置等其他方式,比如Spring中可以通过xml配置文件。这样就使得A压根就不需要知道服务组件B是怎样的,A只关心自己的业务逻辑,具体A使用B的时候,配置文件去做,与具体的A组建没有关系。




转载于:https://blog.51cto.com/hanchengen/1872074

Spring入门简介相关推荐

  1. Spring Boot 入门——Spring Boot 简介||微服务简介

    Spring Boot 入门 1.Spring Boot 简介 Spring Boot来简化Spring应用开发,约定大于配置, 去繁从简,just run就能创建一个独立的,产品级别的应用 简化Sp ...

  2. spring boot简介_Spring Boot简介

    spring boot简介 在本教程中,我们将看一下Spring Boot,看看它与Spring框架有何不同. 我们还将讨论Spring Boot提供的各种功能. 什么是Spring Boot? 在开 ...

  3. Spring入门(四):使用Maven管理Spring项目

    让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...

  4. Spring入门——AOP(面向切面,切什么面?)

    SpringAOP 了解SpringAOP之前,我们先要了解一些关于代理的概念 什么是代理 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是 ...

  5. Spring入门(2)

    一.Spring Boot入门 1. Spring boot简介 ​ spring 4.0之上研发出的 ​ 简化Spring应用开发的框架 ​ J2EE一站式解决方案 2.微服务 2014 马丁·福勒 ...

  6. spring框架(01)——spring入门

    spring框架 版权声明 spring入门 1.spring简介 2.spring特点 2.第一个spring程序--HelloWorld 版权声明 本文原创作者:清风不渡 博客地址:https:/ ...

  7. Spring 入门教程

    Spring 入门教程 1.参考资料 尚硅谷-Spring5框架最新版教程(idea版) 雷丰阳spring.springmvc.mybatis.spring一站式学习 项目地址:Oneby / sp ...

  8. SpringBoot入门简介

    一.Spring Boot入门 1.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...

  9. Markdown入门简介

    参考 http://sspai.com/25137 作者: Te_Lee 文章来源: 少数派 Markdown入门简介(使用工具Haroopad) 一.使用的工具----haroopad(http:/ ...

最新文章

  1. MATLAB实时标定
  2. 中国式微服务技术栈2.0
  3. linux看目录用的哪个磁盘,linux查看目录大小及硬盘大小
  4. Gradle 配置jetty启动项目
  5. element-ui的NavMenu置于顶部(mode=horizontal)时,让菜单可以滚动(overflow-x:auto)(主要用于移动端的菜单显示)...
  6. Python 自动生成环境依赖包 requirements
  7. 容器的基础 XmlBeanFactory(下篇)
  8. linux 查找文件_LINUX常用命令全集
  9. java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理...
  10. 原生JavaScript + Canvas实现图片局部放大器
  11. 微商如何突破月入过万
  12. dp算法之平安果路径问题c++
  13. Syzkaller最后一步运行./bin/syz-manager 无法启动虚拟机 failed to create instance: failed to read from qemu: EOF
  14. Linux命令退格键变成^H的解决办法
  15. ios和Android样式不兼容(待更新)
  16. NLTK语料库nltk.download()安装失败及下载很慢的解决方法
  17. 阅读element-ui源码(1)怎么找到样式与组件入口文件
  18. 大话设计模式(五)观察者模式
  19. 中水处理设备:中水处理工艺流程的选择
  20. 室外温度已达34度,本博客提供自助风扇服务

热门文章

  1. 9个杰出的免费 WordPress 主题
  2. 分析Unicode和UTF-8
  3. 【融云分析】如何实现分布式场景下唯一 ID 生成?
  4. 徒手撸框架--实现 RPC 远程调用
  5. jqgrid 让隐藏的列在编辑状态时出现且可编辑
  6. Oracle 10g(10.2.0.4)升级到10.2.0.5.19
  7. 平衡二叉树及其应用场景
  8. 走近酷点KoolPoint,让我们深度挖掘网管软件的设计细节
  9. ZooKeeper的API操作(二)(通俗易懂)
  10. 使用C#中的ref关键字,用2个简单例子来说明