Spring框架初识

Spring框架

一个轻量级的控制反转和面向切面的容器框架

IoC(Inversion of control)控制反转

容器在对象初始化时,不等对象请求就主动将依赖传递给他
1.谁控制谁:IOC容器控制了对象
2.控制什么:控制了外部资源获取
3.为什么是反转:IOC容器帮助查找及注入依赖对象,对象只是被动的接受依赖对象
4.那些方面反转:依赖对象获取被反转

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

分离应用的业务逻辑和系统级服务,应用对象只实现=》完成业务逻辑

容器

Spring包含并管理应用对象的配置和生命周期(在这个意义上它是一种容器)

框架

Spring可以将简单的组件配置、组合成为复杂的应用。

Spring的优点:

1、 简化开发 ,使得Java EE 变得更容易
2、 AOP(Aspect Oriented Programming)支持
3、 方便测试
4、 集成各种优秀框架
5、 降低JAVA EE API的使用难度
6、 学习范例

5个常用的spring框架

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。
很多研发人员把spring看作心目中最好的java项目,没有之一。
在这里插入图片描述

程序耦合度–模块之间关联程度的度量

耦合的强弱取决于模块间接口的复杂性、调用模块的方式以
及通过界面传送数据的多少。
模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数
据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差
好的程序——高内聚低耦合
耦合分类(按耦合度从大到小排序)
内容耦合 > 公共耦合 > 外部耦合 > 控制耦合 > 标记耦合 > 数据耦合

设计模式的六大原则

1、开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
2、里氏代换原则(Liskov Substitution Principle)
任何基类可以出现的地方,子类一定可以出现。
实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
3、依赖倒转原则(Dependence Inversion Principle)
这针对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口,比使用单个接口要好
降低类之间的耦合度
5、迪米特法则,又称最少知道原则(Demeter Principle)
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle)
合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。

工厂模式

工厂模式(Factory Pattern) 是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

单例模式

单例模式(Singleton Pattern) 是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  • 单例类只能有一个实例。
  • 单例类必须自己创建自己的唯一实例。
  • 单例类必须给所有其他对象提供这一实例。

分类:

  • 懒汉式:加载时不产生单例 调用getInstance方法时才创建
  • 饿汉式:类一旦加载就创建一个单例

SpringIOC方式 实现对程序解耦

BeanFactory 才是 Spring 容器中的顶层接口。
ApplicationContext 是它的子接口。

通过创建beans.xml配置文件 让Spring 管理dao层和Service的业务实例。

  • bean 标签:用于配置让 spring 创建对象,并且存入 ioc 容器之中
    constructor-arg标签 构造器注入 填写参数
    ref属性 指向 ioc 容器中另一个对象
    index属性 参数索引
    property标签 对象属性 set方法注入
  • id 属性:对象的唯一标识。
  • class 属性:指定要创建对象的全限定类
  • scope属性:指定对象的作用范围。
    1.singleton :默认值,单例的
    2.prototype :多例的
  • property标签:
  • set标签
  • array标签
  • list标签
  • map标签
  • props标签

依赖注入:Dependency Injection

它是 spring 框架核心 ioc 的具体实现。我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spring 来维护了。简单的说,就是坐等框架把持久层对象传入
业务层,而不用我们自己去获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值