1、spring两个最基本概念:依赖注入DI、面向切面AOP

2、spring通过上下文Application Context装配bean,实现方式的区别是如何加载它们的配置信息, ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、XmlWebApplicationContext

3、面向切面编程往往被定义成促使应用程序分离关注点的一项技术,除了自身核心的功能之外,那些通常横向关注点的服务,如日志、事物管理、安全等

4、Spring容器有两种:bean工厂、application应用上下文

5、Spring模块

6、Spring核心框架支持的命名空间:aop、beans、context、jee、jms、lang、mvc、oxm、tx、util

7、Spring的bean的作用域:singleton、prototype、request、session、gloable-session

8、为满足初始化和销毁bean的需求,spring提供了bean生命周期的钩子方法:init-method、destroy-method(另一种实现方式是实现InitializingBean/DisposableBean)

9、Spring支持装配复合类型:list、set、map、props

10、spring支持装配空值,覆盖自动装配的值或满足特殊需求

11、spring支持使用表达式实现动态装配,null-safe存取器?. .?[]  .^[]  .$[]  .![]

12、自动装配:byName,byType,constructor,autodetect    autowire/primary/autowire-candidate,默认自动装配范围default-autowire只是当前配置文件中的所有bean

13、自动装配注解@Autowired @Qualifier(“”) 按类型装配,qualifier做限定,自定义限定器注解,@Inject/@Named

14、自动检测@Component/@Controller/@Repository/@Service

15、过滤组件扫描:include-filter/exclude-filter,扫描策略annotation、assignable、aspect、custom、regex

16、srping基于java的配置注入:@Configuration

17、通知Advice定义了切面是什么以及何时使用。切面的工作被称为通知,切面通知类型:Before/After/After-returning/After-throwing/Around

18、连接点Joinpoint,应用可能需要对时机应用通知,这些时机被称为连接点,这个时机可以是调用方法时,抛出异常时,甚至修改一个字段时

19、切点Pointcut定义了在何处使用切面,通常使用明确的类和方法名称来指定这些切点,切点定义了那些连接点会得到通知

20、切面Aspect是切点和通知的结合。通知和切点共同定义了关于切面的全部内容

21、织入weaving:编译期(AspectJ)/类加载期(AspectJ 5)/运行期,代理对象

22、spring的AOP支持:基于代理的AOP/@AspectJ注解驱动的切面/纯POJO切面/注入式Aspectj切面

23、spring基于动态代理,只支持方法连接点,缺少对字段连接点的支持,也不支持构造器连接点

24、spring AOP支持的AspectJ支持的切点指示器:art()、@args、execution()、this()、target()、@target、within()、@within()、@annotation、bean(),只有execution指示器是唯一的执行匹配,其他的指示器都是用于限制匹配的,限制匹配时可以使用and/or/not

25、在xml中声明切面<aop:advisor>、<aop:after>、<aop:after-returning>、<aop:after-throwing>、<aop:around>、<aop:aspect>、<aop:aspect-autoproxy>、<aop:before>、<aop:config>、<aop:declare-parents>、<aop:pointcut>

26、通过切面引入新功能,<aop:declare-parents>,implement-interface,default-impl,delegate-ref,default与delegate的区别是delegate是Spring bean,可以被注入,通知,或使用其他spring配置等

27、spring注解切面需要:引入aop命名空间’http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd’、创建代理<aop:aspectj-autoproxy>、注解切面(@Aspect/@Pointcut/@Before/@After)

28、@AspectJ注解并不了解Spring的bean,若要委托给bean,则只能使用xml配置

29、spring不能使用<bean>声明来创建AspectJ实例-它已经在运行时由AspectJ创建了,spring通过aspectOf()工厂方法获得切面的引用,然后像常规<bean>元素那样执行依赖注入

Spring----01. 入门知识,IoC/DI的更多相关文章

  1. Spring MVC -- Spring框架入门(IoC和DI)

    Spring MVC是Spring框架中用于Web应用开发的一个模块.Spring MVC的MVC是Model-View-Controller的缩写.它是一个广泛应用于图像化用户交互开发中的设计模式, ...

  2. spring 依赖注入(IOC DI)

    依赖注入(IOC DI) 依赖注入的两种方式: 1. set注入 Spring要求使用set注入方式的时候,Bean需要提供一个无参数的构造方法.并提供一个属性的setter方法.例如: packag ...

  3. spring框架学习(一)——IOC/DI

    什么是Spring框架: Spring是一个基于IOC和AOP的结构J2EE系统的框架: IOC 反转控制 是Spring的基础,Inversion Of Control,简单说就是创建对象由以前的程 ...

  4. Spring MVC入门知识总结

    2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职 ...

  5. Spring MVC -- Spring MVC入门

    本篇博客首先介绍Spring MVC的优点,然后介绍Spring MVC的基本组件,包括DispatcherServlet,并学习如何开发一个“传统风格”的控制器,这是在Spring 2.5版本之前开 ...

  6. spring的IOC/DI功能实践

    一.写在前面: 做这个Demo主要是为了能够更好的理解Spring的原理,看再多的文章,听再多的讲解最终都最好自己去实现一遍,可以将Spring的功能分块实现,最终自然比较容易将各个功能组合起来. 这 ...

  7. Spring入门1. IoC入门实例

    Spring入门1. IoC入门实例 Reference:Java EE轻量级解决方案——S2SH 前言: 之前学习过关于Spring的一点知识,曾经因为配置出现问题,而总是被迫放弃学习这些框架技术, ...

  8. Spring入门 (IOC)

    1.实现原理

  9. Spring 入门知识

    ------------------------------------------------------------------------------------- Spring是什么? Spr ...

  10. spring+IOC+DI+AOP优点分析(一)

    Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于sprin ...

随机推荐

  1. CentOS yum命令报错 Error: File /var/cache/yum/i386/6/epel/metalink.xml does not exist

    最近在虚拟机上执行yum命令一直报错:Could not parse metalink https://mirrors.fedoraproject.org/metalink?repo=epel-7&a ...

  2. 11.VUE学习之提交表单时拿到input里的值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  3. C# WPF使一个窗口挡在最前面,且不处理此窗口就不能点击其他窗口

    模态框弹出就可以了.窗口用ShowDialog调用. 可以在子窗体里把WindowStartupLocation设置为CenterOwner, 让子窗体在MainWindow的中心位置显示

  4. Pandas 数据读取

    1.读取table # 读取普通分隔数据:read_table # 可以读取txt,csv import os os.chdir('F:/') #首先设置一下读取的路径 data1 = pd.read ...

  5. linux中jdk的安装与mysql 的安装

    1.linux安装jdk #先找到 安装包#cd /usr/java tar -zxvf jdk-8u31-linux-x64.tar.gz 2.安装选择要安装java的位置,如/usr/目录下,新建 ...

  6. HNOI2018 摸鱼记

    HNOI2018 摸鱼记 今天我又来记流水账啦 Day 0 颓废的一天. 我,球爷和杜教在颓膜膜.io ych看起来在搓碧蓝 鬼知道哥达鸭干了什么 学习氛围只局限在机房的一角 后来全体Oier开会,5 ...

  7. Redmine部署到Windows Azure

    有幸,今天可以尝试将Redmine部署到Windows Azure中,记下点滴,方便大家查阅 步骤一:Windows Azure中安装Ubuntu VM 遇到的问题,创建VM时会提示云服务.云存储订阅 ...

  8. 《Cracking the Coding Interview》——第17章:普通题——题目13

    2014-04-29 00:15 题目:将二叉搜索树展开成一个双向链表,要求这个链表仍是有序的,而且不能另外分配对象,就地完成. 解法:Leetcode上也有,递归解法. 代码: // 17.13 F ...

  9. 每天一个Linux命令(3):ls命令

    ls命令用来显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档案名 ...

  10. 第一天docker入门

    [01 入门] docker 最核心为三部分组成 镜像,仓库和容器 镜像:一个只读的模板 仓库:代码仓库,镜像的集合 容器:镜像的实例化进程 我们可以这样理解 容器就是一个沙箱,docker利用容器运 ...