Spring初步学习基础

IOC(控制反转):本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,Spring的IOC容器主要使用DI方式实现的。不需要主动查找,对象的查找、创建和定位全部由容器管理。

1.大量减少了Factory和Singleton的数量,代码层次更加清晰主要原因是我们不在查找、定位、创建、管理对象之间的依赖关系,都交给IOC容器管理了。

2.Spring的IOC容器是一个轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现一些特殊的接口。

3.一个合理的设计最好尽量避免侵入性。

4.提供了AOP声明式服务能力,可以针对POJO对象提供声明式服务能力,如:声明式事务

5.鼓励了我们面向接口编程

6.减少了代码中的耦合,将耦合推迟到了配置文件中,发生了变化也更容易控制

Spring注入:

1.了解常见的属性注入:int ,String, list, set, map的注入

2.什么是属性编辑器和作用?

  *将spring配置文件中的字符串转换成相应的Java对象

  *spring内置了一些属性编辑器,也可以自定义属性编辑器

3.如何自定义属性编辑器?

  *继承PropertyEditorSupport

  *覆盖setAsText()方法

  *将自定义的属性编辑器注入到spring中

4.多配置文件的读取方式

  *数组

  *采用*匹配模式

5.如何减少spring的配置文件

  *通过bean标签将公共的配置提取出来,然后指定<bean>标签中的abstract属性为true

  *在其他<bean>标签中指定其他parent即可

6.spring默认在创建BeanFactory时,将配置文件中所有的对象实例化并进行注入,但可以采用相关的属性延迟配置文件初始化,如:default-lazy-init="true"

Spring bean的作用域

  scope取值:

  *singleton:默认值,每次调用getBean()向IOC容器取得对象是相同的

  *prototype:每次调用getBean()向IOC容器取得对象是不相同的

根据名词完成自动匹配

根据类型完成自动匹配

AOP相关概念:

Cross Cutting Concern

  -是一种独立服务,它会遍布在系统的处理流程之中

Aspect

  -对横切性关注点的模块化

Advice

  -对横切性关注点的具体实现

Pointcut

  -定义了Advice应用到哪些JoinPoint上,对Spring来说是方法调用

JoinPoint

  -Advice在应用程序上执行的点或时机,Spring只支持方法的JoinPoint,这个点也可以使属性修改,如:Aspectj可以支持

Weave

  -将Advice应用到TargetObject上的过程叫织入,Spring支持的是动态织入

TargetObject

  -Advice被应用的对象

Proxy

  -SpringAOP默认使用JDK的动态代理,它的代理是运行时创建,也可以使用CGLIB代理

Introduction

  -可以动态的为类添加方法

  

原文地址:https://www.cnblogs.com/zyfzyfzyf/p/7635878.html