首页 > 编程语言 > 详细

Spring初识

时间:2020-07-29 14:45:29      阅读:61      评论:0      收藏:0      [点我收藏+]

初识Spring

  • 一个开源框架,Rod Johnson创建,为解决复杂的企业应用开发而创建。
  • Spring 框架是 Java 应用最广的框架,它的 成功来源于理念,而不是技术本身 ,它的理念包括 IoC (Inversion of Control,控制反转)AOP(Aspect Oriented Programming,面向切面编程)

什么是Spring?

  1. Spring 是一个 轻量级DI / IoC 和 AOP 容器的开源框架 ,来源于 Rod Johnson 在其著作《Expert one on one J2EE design and development》中阐述的部分理念和原型衍生而来。
  2. Spring 提倡以 “最少侵入” 的方式来管理应用中的代码,这意味着我们可以随时安装或者卸载 Spring。
  • 适用范围:任何Java应用
  • 根本目的:简化Java开发

(题外话:尽管 J2EE(Java 2 Platform Enterprise Edition) 能够赶上 Spring 的步伐,但 Spring 并没有停止前进,移动开发、社交 API 集成、NoSQL 数据库、云计算以及大数据都是 Spring 正在涉足和创新的领域。Spring 的前景依然会很美好。)


术语介绍

  • 框架 :一种 半成品 ,可以帮我们实现一定的基础功能,规定类和对象的创建方法,使用了框架进行开发,相当于已经完成了一部分基础,我们只需要完成另一部分基础就可以完成开发。
  • 非侵入式设计 :从框架的角度来看,可以理解为: 无需框架提供类 。这样在更换框架的时候,可以更加方便, 拒绝了对框架的依赖
  • 轻量级与重量级 :轻量级一般为 非入侵性、依赖少、资源占用少、部署简单 等,而重量级恰好相反。
  • JavaBean :符合 JavaBean 规范的 Java 类。(JavaBean属性名要求:前两个字母要么都大写,要么都小写。其实在用IDEA、Eclipse编写时IDE也有提示。)
  • POJO :即 Plain Old Java Objects简单老式 Java 对象 ,它可以包含业务逻辑或持久化逻辑,但不担当任何特殊角色且不继承或不实现任何其它Java框架的类或接口。
 注明 :虽然Spring是用JavaBean来表示组件,但是使用的时候不是必须遵循。
  • 容器 :从程序设计来说,是 装对象的对象 ,具有放入拿出等操作,也可以 管理对象的生命周期

Spring优势

  • 低侵入性/低耦合性
  • 声明式事务管理 (在切面会提到是什么)
  • 方便集成其他框架
  • 降低开发难度 (显然)
  • 对J2EE有一站式的解决方案

框架结构:

技术分享图片

学习这个框架还有很多自己慢慢搜吧 啊哈哈

IOC/DI与AOP

IOC:Inverse of Control(控制反转)

  • 不是技术而是 思想 就是将手动创建对象的控制权交给Spring框架管理。
  • 正控 :若要使用对象,需要自己负责对象创建。
  • 反控 :若要使用对象,只需要从Spring容器获取对象,不关心创建过程,也就是控制反转给了Spring框架。
  • 相当于好莱坞法则 :不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you),把权力交给对方完全控制。
  • 栗子
    我想吃土豆丝
    • 正控:买土豆-》切土豆-》炒土豆 (创建过程)
    • 反控:去餐厅-》点一份土豆丝(描述需求)-》服务员送上来(满足需求)

DI:Dependency Injection(依赖注入)

  • Spring 创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设值给该对象。

AOP:Aspect Oriented Programming(面向切面编程)

首先把功能分为核心业务和周边功能。
  • 功能

    • 核心业务 ,即 登录、增删查改等。
    • 周边功能 ,即 性能监视、运行日志、事务管理等。

    那么 这里的 周边功能 其实就是AOP里面的 切面
    AOP的思想 就是, 核心和切面,分开单独开发,然后再将两个结合在一起

  • 为什么这么做?

    AOP可以将那些与核心没有关系,但是却需要核心调用的逻辑服务(如事务处理、日志管理、权限控制、性能监视等)封装起来,减少系统的重复代码,降低模块耦合度,利于系统的扩展与维护。(也就是将多余的切面封装起来,让核心开发更加简单。)

  • 一些概念

    • 切入点(Pointcut)
      在哪些类、方法里切入 (where)
    • 通知(Advice)
      方法执行的什么地方做什么(where-》do what)
    • 切面(Aspect)
      切面 = 切入点 + 通知,也就是在什么时候什么地方做什么
    • 编织(Weaving)
      将切面编织入对象中,创建出代理对象。(Spring的任务)

Spring初识

原文:https://www.cnblogs.com/agrinJPG/p/13396363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!