慕课网_《Spring入门篇》学习总结

《Spring入门篇》学习总结

时间:2017年1月18日星期三
说明:本文部份内容均来自慕课网。@慕课网:http://www.imooc.com
教学示例源码:https://github.com/zccodere/s...
我的学习源码:https://github.com/zccodere/s...java

第一章:概述

1-1 Spring 入门课程简介

本门课程包含的内容git

什么是框架github

Spring简介
IOC(配置、注解)
Bean(配置、注解)
AOP(配置、注解、AspetJ、API)

如何学习Springspring

掌握用法
深刻理解
不断实践
反复总结
再次深刻理解与实践

1-2 Spring概况

Spring是什么编程

Spring是一个开源框架,为了解决企业应用开发的复杂性而建立的,但如今已经不止应用于企业应用。
是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架
--从大小与开销两方面而言Spring都是轻量的
--经过控制反转(IOC)的技术达到松耦合的目的
--提供了面向切面编程的丰富支持,容许经过分离应用的业务逻辑与系统级服务进行内聚性的开发。
--包含并管理应用对象的配置和生命周期,这个意义上是一种容器。
--将简单的组件配置、组合成为复杂的应用,这个意义上是框架

为何是Spring安全

在Spring上开发应用简单
在Spring上开发应用方便
在Spring上开发应用快捷

Spring带来了复杂JavaEE开发的春天框架

clipboard.png

Spring做用性能

容器
提供了多种技术的支持
    --JMS
    --MQ支持
    --UnitTest
AOP(事务管理、日志等)
提供了众多方便应用的辅助类(JDBC Template等)
对主流应用框架(Hibernate等)提供了良好的支持

适用范围学习

构建企业应用(SpringMVC+Spring+Hibernate/MyBatis)
单独使用Bean容器(Bean管理)
单独使用AOP进行切面处理
其余的Spring功能:如:对消息的支持等
在互联网中的应用

1-3 Spring框架

框架ui

什么是框架

clipboard.png

clipboard.png

为何使用框架

软件系统日趋复杂
重用度高,开发效率和质量提升
软件设计人员要专一于对领域的了解,使需求分析更充分
易于上手、快速解决问题

第二章:Spring IOC容器

2-1 IOC及Bean容器

IOC

接口及面向接口编程
什么是IOC
Spring的Bean配置
Bean的初始化
Spring的经常使用注入方式

接口

用于沟通的中介物的抽象化
实体把本身提供给外界的一种抽象化说明,用以由内部操做分离出外部沟通方法,使其能被修改内部而不影响外界其余实体与其交互的方式
对应Java接口即声明,声明了哪些方法是对外公开提供的
在Java8中,接口能够拥有方法体

面向接口编程

结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能接口,各层次仅依赖接口而非实现类
接口实现的变更不影响各层间的调用,这一点在公共服务中尤其重要
“面向接口编程”中的“接口”是用于影藏具体实现和实现多态性的组件

什么是IOC

IOC:控制反转,控制权的转移,应用程序自己不负责依赖对象的建立和维护,而是由外部容器负责建立和维护
DI(依赖注入)是其一种实现方式
目的:建立对象而且组装对象之间的关系

clipboard.png

clipboard.png

Spring的Bean配置

clipboard.png

Bean容器初始化

基础:两个包
    org.springframework.beans
    org.springframework.context
    BeanFactory提供配置结构和基本功能,加载并初始化Bean
    ApplicationContext保存了Bean对象并在Spring中被普遍使用方式,ApplicationContext
    本地文件
    Classpath
    Web应用中依赖servlet或Listener

clipboard.png

2-2 Spring注入方式

Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
经常使用的两种注入方式
    --设值注入
    --构造注入

clipboard.png

clipboard.png

第三章:Spring Bean装配(上)

3-1 Spring Bean装配之Bean的配置项及做用域

clipboard.png

3-2 Spring Bean装配之Bean的生命周期

定义
初始化
使用
销毁

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

3-3 Spring Bean装配之Aware接口

Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化以后,能够获取相应资源
经过Aware接口,能够对Spring相应资源进行操做(必定要慎重)
为对Spring进行简单的扩展提供了方便的入口

3-4 Spring Bean装配之自动装配(Autowiring)

clipboard.png

3-5 Spring Bean装配之自动装配(Resources)

clipboard.png

clipboard.png

clipboard.png

第四章:Spring Bean装配(下)

4-1 Bean的定义及做用域的注解实现

clipboard.png

clipboard.png

clipboard.png

4-2 AuTowired注解说明1

@Required注解适用于bean属性的setter方法
这个注解仅仅表示,受影响的bean属性必须在配置时被填充,经过在bean定义或经过自动装配一个明确的属性值

4-5 @Bean注解

基于java的容器注解

@Bean标识一个用于配置和初始化一个由SpringIOC容器管理的新对象的方法,相似于XML配置文件的<bean/>
能够在Spring的@Component注解的类中使用@Bean注解任何方法(仅仅是能够),一般使用的是@Configuration

第五章:Spring AOP概念

5-1 AOP基本概念及特色

专题三AOP

什么是AOP及实现方式
AOP基本概念
Spring中的AOP
Schema-based AOP
Spring AOP API
AspectJ

什么是AOP

AOP:Aspect Oriented Programming的缩写,意为:面向切面编程,经过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。

AOP实现方式

预编译
    AspectJ
运行期动态代理(JDK动态代理、CGLib动态代理)
    SpringAOP、JbossAOP

clipboard.png

clipboard.png

Spring框架中AOP的用途

提供了声明式的企业服务,特别是EJB的替代服务的声明
容许用户 定制本身的方面,以完成OOP与AOP的互补使用

Spring的AOP实现

纯java实现,无需特殊的编译过程,不须要控制类加载器层次
目前只支持方法执行链接点(通知Spring Bean的方法执行)
不是为了提供最完整的AOP实现(尽管它很是强大);而是侧重于提供一种AOP实现和Spring IOC容器之间的整合,用于帮助解决企业应用中的常见问题
Spring AOP不会与AspextJ竞争,从而提供综合全面的AOP解决方案

clipboard.png

5-2 配置切面aspect

clipboard.png

<aop:config>风格的配置大量使用了Spring的自动代理机制

clipboard.png

5-3 配置切入点pointcut

clipboard.png

clipboard.png

clipboard.png

5-4 Advice应用(上)

5-5 Advice应用(下)

clipboard.png

5-6 Introductions

Introductions

简介容许一个切面声明一个实现指定接口的通知对象,而且提供了一个接口实现类来表明这些对象。
由<aop:aspect>中的<aop:declare-parents>元素声明该元素用于声明所匹配的类型拥有一个新的parent(所以得名)

clipboard.png

5-7 Advisors

Advisor就像一个小的自包含的方面,只有一个advice
切面自身经过一个bean表示,而且必须实现某个advice接口,同时,advice也能够很好的利用AspectJ的切入点表达式

Spring经过配置文件中<aop:advisor>元素支持advisor实际使用中,大多数状况下它会和transactional advice配合使用
为了定义一个advisor的优先级以便让advice能够有序,可使用order属性来定义advisor的顺序

clipboard.png

第六章:Spring AOP的API介绍

6-1 Spring AOP API的Pointcut、advice概念及应用

Spring AOP API

这是Soring1.2历史用法,如今(V4.0)仍然支持
这是SpringAOP基础,不得不了解
如今的用法也是基于历史的,只是更简便了

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

6-2 ProxyFactoryBean及相关内容(上)

clipboard.png

clipboard.png

clipboard.png

clipboard.png

6-3 ProxyFactoryBean及相关内容(下)

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

第七章:Spring对AspectJ的支持

7-1 AspectJ介绍及Pointcut注解应用

clipboard.png

clipboard.png

Aspect

一、@AspectJ切面使用@Aspect注解配置,拥有@Aspect的任何bean将被Spring自动识别并应用。
二、用@Aspect注解的类能够有方法和字段,他们也可能包括切入点(pointcut),通知(Advice)和引入(introduction)声明。
三、@Aspect注解是不可以经过类路径自动检测发现的,因此须要配合使用@Component注释或者在xml配置bean。

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

7-2 Advice定义及实例

7-3 Advice扩展

相关文章
相关标签/搜索