Spring 的 Ioc 容器
所有的组件都是被动的( Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
BeanFactory 根据配置文件确定容器中 bean 的实现,管理 bean 之间的依赖关系。
通常,对属性值为容器中其他 bean 的情况,推荐采用 ref 元素指定,而不是 value 元素。
Spring开发包介绍 – 核心开发包
在建立Spring工程的时候,需要引入Spring的开发包,否则无法建立Spring的开发和运行环境,以下简单介绍一下Spring的核心开发包的基本用途:
Spring Core
Spring Beans
Spring AOP
Spring Context
以下开发包文件虽不是Spring核心开发包,但是提供了各种企业级服务:
Spring Aspects
Spring Context Support
Spring Expression
Spring Framework Bom
Spring Instrument
Spring Instrument Tomcat
Spring JDBC
Spring JMS
Spring orm
Spring oxm
Spring Struts
Spring test
Spring tx
Spring web
Spring webmvc
Spring webmvc portlet
IoC概述 – IoC的注入类型
从注入方法上看,主要划分为三种类型:
构造函数注入
属性注入
接口注入
资源访问工具类
JDK所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,因此,Spring设计了一个Resource接口,它为应用提供了更强大的访问底层资源的能力:
主要方法:
boolean exists()
boolean isOpen()
URL getURL()
File getFile()
InputStream getInputStream()
具体实现类:
ByteArrayResource
ClassPathResource
FileSystemResource
InputStreamResource
ServletContextResource
UrlResource
为了访问不同类型的资源,必须使用相应的Resource实现类,这是比较麻烦的,Spring提供了一个强大的加载资源的机制,能够自动识别不同的资源类型:
资源类型地址前缀:
classpath classpath:com/jike/bean.xml
File file:/com/jike/bean.xml
http:// http://www.jike.com/bean.xml
ftp ftp://www.jike.com/bean.xml
无前缀 com/jike/bean.xml
Ant风格的匹配符:
?:匹配文件名中的一个字符
*:匹配文件名中的任意字符
**:匹配多层路径
Ant风格的资源路径示例:
Classpath:com/t*st.xml
File:D:/conf/*.xml
Classpath:com/**/test.xml
Classpath:org/springframework/**/*.xml
BeanFactory和ApplicationContext的介绍
BeanFactory是Spring框架最核心的接口,它提供了高级IoC的配置机制。ApplicationContext建立在BeanFactory基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文:
BeanFactory和ApplicationContext的介绍 – BeanFactory的介绍
BeanFactory是一个类工厂,可以创建并管理各种类的对象,Spring称这些创建和管理的Java对象为Bean。在Spring中,Java对象的范围更加宽泛。接下来我们对BeanFactory的类体系结构以及装载初始化顺序进行说明:
类体系结构:
XmlBeanFactory
ListableBeanFactory
HierarhicalBeanFactory
ConfigurableBeanFactory
AutowireCapableBeanFactory
SingletonBeanFactory
BeanDefinitionRegistry
初始化顺序:
1、创建配置文件
2、装载配置文件
3、启动IoC容器
4、获取Bean实例
BeanFactory和ApplicationContext的介绍 – ApplicationContext的介绍
ApplicationContext由BeanFactory派生而来,提供了更多面向实际应用的功能。在BeanFactory中,很多功能需要以编程的方式方式实现,而在ApplicationContext中则可以通过配置的方式实现。接下来介绍一下ApplicationContext的实现类以及类体系结构:
具体实现类:
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
ConfigurableApplicationContext
扩展接口:
ApplicationEventPublisher
MessageSource
ReaourcePatternResolver
LifeCycle
和BeanFactory初始化相似,ApplicationContext的初始化也很简单,根据配置文件路径不同可以选择不同的实现类加载:
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
Bean的实例化问题
Bean的生命周期
Spring容器中的Bean拥有明确的生命周期,由多个特定的生命阶段组成,每个生命阶段都允许外界对Bean施加控制。在Spring中,我们从Bean的作用范围和实例化Bean时所经历的一系列阶段来描述Bean的生命周期:
BeanFactory中的Bean的生命周期
ApplicationContext中的Bean的生命周期
Bean的生命周期 – BeanFactory中的Bean的生命周期
如下通过一个图形化的方式进行描述BeanFactory中的Bean的生命周期:

Spring的AOP容器

org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
自动把map转换为son字符串
ApplicationContext: 实用的Bean工厂
如果说BeanFactory是spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。
代理:
静态代理
jdk动态代理 项目中要有 一个拦截器实现 InvocationHandler
cglib动态代理 项目中要有 一个拦截器实现 MethodInterceptor
切面: log类、权限类、安全类
通知:切面中的方法
连接点:客户端调用哪个方法, 哪个方法就是连接点。
切入点:相当于条件,
可以通过切入点表达式,指定拦截哪些类的哪些方法; 给指定的类在运行的时候植入切面类代码。
切入点表达式:
织入:形成代理对象的方法的过程就称为织入。
什么是AOP(Aspect Oriented Programming),就是把反复使用的、非核心的代码提取出来。

转载于:https://www.cnblogs.com/YangBinChina/p/8966160.html

Spring 学习笔记相关推荐

  1. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  2. Spring学习笔记(三) AOP_annotation,AOP_XML

    在学习课程以前,听说AOP有种很神秘的感觉,好像很好深的技术.其实原理很简单,使用动态代理的方式给程序增加逻辑.与此相似的有struts2中的filter拦截器. 再讲AOP之前先把需求说一下: 同S ...

  3. spring学习笔记06-spring整合junit(出现的问题,解决的思路)

    spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...

  4. spring学习笔记01-BeanFactory和ApplicationContext的区别

    spring学习笔记01-BeanFactory和ApplicationContext的区别 BeanFactory 和 ApplicationContext 的区别           BeanFa ...

  5. spring学习笔记02-spring-bean创建的细节问题

    spring学习笔记02-spring-bean创建的细节问题 三种创建Bean对象的方式 Bean的作用范围 Bean的生命周期 <?xml version="1.0" e ...

  6. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  7. Spring学习笔记:配置单数据源

    Spring学习笔记:配置单数据源 一.Spring Boot默认数据源类型 Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfig ...

  8. Spring学习笔记:第一个Spring Boot程序HelloWorld

    Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...

  9. Spring学习笔记之MyBatis

    系列文章目录 Spring学习笔记 之 Springhttps://blog.csdn.net/weixin_43985478/article/details/124411746?spm=1001.2 ...

  10. 【Spring学习笔记 九】Spring声明式事务管理实现机制

    什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...

最新文章

  1. liunx使用ssh免密登录
  2. MapReduce编程系列 — 2:计算平均分
  3. 后端进阶,要搞懂哪几块?
  4. BZOJ2437 [Noi2011]兔兔与蛋蛋 【博弈论 + 二分图匹配】
  5. 工作中最常用的Excel函数公式大全
  6. IBM收购数据库安全公司 围剿Oracle之心不死
  7. 计算机显示技术发展,显示技术
  8. raid5通常需要几块盘_磁盘阵列是什么东西,为什么需要阵列?
  9. 网管工具之cacti
  10. 华为外包数据库面试问题分享20211225
  11. html怎么唤起虚拟键盘,电脑虚拟键盘怎么打开?电脑虚拟键盘打开五大方法介绍...
  12. 拾忆书苑(图书商城系统)网站的设计与实现(html;DIV+CSS; Bootstrap; Dreamweaver; Photoshop)
  13. Qt简单实现雷达扫描[附源码]
  14. 杨然茹(帮别人名字作诗)
  15. 网狐荣耀系列之微星棋牌在运营过程中用户登录不上
  16. 最近火爆的外卖分销小程序搭建及推广秘籍
  17. java加密解密 pdf_Java 加密和解密PDF文档
  18. 局域网文件共享需要打开服务器,局域网共享工具有什么用怎么开启
  19. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】
  20. 预测性维护_工厂数据的预测性维护

热门文章

  1. IOS初级:UIAlertController
  2. 泛型实体类List绑定到repeater
  3. Cornell University Designing with Microcontrollers
  4. 以太坊是什么,为什么这么火?
  5. css 网格布局_我从CSS网格布局中学到的东西
  6. Docker的使用(四:Docker Registry本地私有仓库搭建知识点总结)
  7. JavaScript面向对象怎样删除标签页?
  8. 学Java需要下载什么软件?都有什么作用?
  9. Excel VBA 教程
  10. 写了六个相同功能的函数之后,我学到了什么