Spring4.0学习笔记 第一章
来源:互联网 发布:linux user nobody 编辑:程序博客网 时间:2024/05/16 05:25
Spring 核心 是 IOC (DI)和 AOP,也就是控制反转(将生成bean的责任交给spring容器),DI依赖注入(web应用中一般都是由各个组件相互依赖协作才能完成一定
的功能,spring面向接口注入依赖的组件,一定程度解耦了代码,因为我们不用关心实现接口实现,只要注入接口,不同的人不同的接口实现spring并不关心),创建组件之间
的协作行为通常称为装配。 spring有多种装配bean的方式,一种是按照xml方式装配,另一种是按照Java来描述配置(也就是建一个javaconfig将配置像正常javal类一样配置在
里面)。
Spring容器有两种容器实现。一种是bean工厂,一种是应用上下文,一般使用应用上下文,bean工厂对大多数应用都太低级了
Spring上下午全权负责 对象的创建 和组装。 spring 自带了多种上下文的实现,它们唯一的区别就是加载配置文件的方式不同
例如:
AnnotationConfigApplicationContext, 从一个或者多个基于Java的配置类中加载Spring应用上下文,也就是所有的配置在JavaConfig 类的这种形式 ;
AnnotationConfigWebApplicationContext, 从一个或者多个基于Java的配置类中加载Spring Web应用上下文;
ClassPathXmlApplicationContext 从类路径下 的一个或多个XML配置文件加载上下文的定义,把应用上下文的定义文件如beans标签中的所有bean 作为资源类;
FileSystemXmlApplicationContext 把文件系统下的一个或者多个xml配置文件中加载上下文的定义;XmlWebApplicationContext 从web应用下的一个或者多个xml配置文件加载上下文定义
例如手动加载上下文的例子:AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
Student student = ac.getBean("beanId"); 其它形式的上下文创建跟这类似
AOP面向切面编程,允许我们把系统各处的功能分离出来形成可重用的组件,例如 日志,事务管理,安全这样的功能,很多模块可能都会用到,我们可以把他们抽离出来作为一个切面公用,不仅减少了代码量而且降低了耦合
bean的生命周期
1、Spring对bean进行实例化
2、将值和bean的引用注入到bean对应的属性中
3、如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法
4、如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入;
5、如果Bean实现了ApplicationContextAware接口,Spring将调用setApplicationContext()方法,将bean所在的应用上下文传入进来
6、如果bean实现了BeanPostProcessor接口,Spring将调用他们的post-ProcessBeforeInitialization()方法
7、如果bean实现了InitializingBean接口,Spring将调用他们的After-PropertiesSet()方法,如果bean使用了init-method声明初始化方法,该方法也会被调用
8、如果bean实现了BeanPostProcessor接口,Spring将调用他们的post-ProcessAfterInitialization()方法
9、此时bean已经准备就绪,可以被应用程序使用了,他们将一直驻留在应用的上下文中,直到应用上下文被销毁
10、如果bean实现了DisposableBean接口,spring将调用它的destroy()接口方法。同样,如果bean使用了destroy-method声明销毁方法,该
方法也会被调用
- Spring4.0学习笔记 第一章
- Spring4.0学习笔记--IOC
- Spring4.0学习笔记--AOP
- Spring4.0学习笔记-1
- Spring4.0学习笔记-AOP
- spring4.0学习笔记day1
- Spring4.0 第一章(helloworld)
- Spring4.0学习笔记--整合Hibernate
- Spring4.0学习笔记-自动装配
- Spring4学习笔记-AOP
- Spring4学习笔记
- Spring4学习笔记-JDBC
- Spring4实战学习笔记
- Spring4实战学习笔记
- Spring4 学习笔记
- Spring4学习笔记-Spring4整合Hibernate4
- Java.Web学习笔记 Spring4
- Spring4 IOC 注解学习笔记
- JVM初探- 内存分配、GC原理与垃圾收集器
- 基于SVM的股票预测 Python实现 附Github
- B. Urbanization
- 移位操作,宏定义
- 用虚拟环境保存库文件
- Spring4.0学习笔记 第一章
- 【Java】把一个对象转化为String字符串
- jQuery事件-鼠标事件
- java自动装箱和拆箱
- 上传到github的指令
- 2016.12.30 加号选择器
- 综合到变态的背包问题]ZOJ 3164 Cookie Choice
- 快学数据挖掘—数据探索—相关分析
- python之图片文本识别