• Spring01 依赖注入反转的基本概念


    Spring的两大核心概念:

    Spring的IOC(依赖反转注入)和Spring的AOP(面向切面编程)

    其中,这两者所处的位置(pic1)

     

    Spring的两大优势:
    方便解耦

    方便AOP

    声明式编程

    方便测试

    方便集成一些优秀的框架

    方便使用JAVAEE的API

    Spring的体系架构:

    Spring IOC 的作用

    耦合,可以理解为依赖关系

    包括:

    1. 类之间的依赖关系

    2. 方法之间的依赖关系

    解耦,做到:

    编译时不依赖,运行时依赖

    方法:

    1. 采用反射的方式创建对象,避免使用new关键字

    2. 读取配置文件来获得全限定类名

    解决方式1 :采用properties配置

    首先我们要创建bean对象:

    bean对象是什么,怎么做

    1. properties 是什么

    Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。

    2. 怎么用properties配置(https://www.cnblogs.com/xudong-bupt/p/3758136.html)

    2.1 初步配置

    1)根据x.properties文件load一个Property对象

    2)这个Property对象中以键值对的形式存储着你的你想要的类的具体类名

    3)用classforName加载

    2.2 为了单例模式,把加载过的类储存起来

    1)加载一个bean的map类型

    2)在静态代码块的时候就把这个map得到

    考虑为什么单例是可以的:外部没有需要修改的属性,否则单例在多线程可能会出错

    采用IOC如何实现工厂模式

     控制反转:一个类把自己创建类的权利交给了另一个框架(工厂)

    也就是这个类只能根据名字创建对象,至于创建出来的对象是不是他想要的那一个,其实是无法控制的,这是由配置文件来决定的

    具体实现:

     上图也是ApplicationContext常用的三个实现类:

    ClassPathXmlApplicationContext :加载类路径下的配置文件

    FileSystem.... :加载磁盘路径下的配置文件

    AnnotationConfig... : 基于注解的配置

     

  • 相关阅读:
    Android Intent 教程
    ios 获取手机信息(UIDevice、NSBundle、NSLocale)
    [实时渲染] 2.3 几何处理阶段
    腾讯2016实习生面试经验(已经拿到offer)
    Swift编程语言学习6—— 闭包
    head first c<11>初探网络编程上
    APM2.8 Rover 自己主动巡航车设计(固件安装和设置)
    关于java中String的一点理解
    又一次认识java(一) ---- 万物皆对象
    Linux启动Oracle监听和服务
  • 原文地址:https://www.cnblogs.com/Plorde/p/12494944.html
Copyright © 2020-2023  润新知