目录
2、Javabean实际上是指一种特殊的类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重复使用或者插入到其他应用程序中去。
1、使用ApplicationContent.xml文件配置(XML文件)
一、Spring的优点:
1、Spring是一个开源免费的框架 , 容器 .
2、Spring是一个非侵入式的轻量级的框架 .
3、控制反转 IoC , 面向切面 Aop
4、对事务的支持 , 对框架的支持。
一句话概括:
Spring是一个非入侵式的轻量级控制反转(IoC)和面向切面(AOP)的容器(框架)。
二、spring的组成:
核心重点:
1、核心容器(IOC):
(1)谁控制谁?控制什么?
传统的JavaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象。
而IOC是由专门一个容器来创建对象,即由IOC容器来控制对象的创建。
控制了外部资源获取(不只是对象,还有文件等)
(2)为何是反转?
因为容器帮助我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转。
即依赖对象的获取方式被反转了。
2、Spring AOP:
(1)AOP原理:
AOP就可以理解为上面的代理商代理联想电脑官方店的过程。联想的官方店(目标对象Target)把展示电脑和销售电脑两个动作(连接点Joinpoint)交给代理商(切面Aspect)接管,代理商在展示电脑和销售电脑两个动作(切入点Pointcut)前后又增加了其他动作(通知/增强 Advice),从而实现代理联想电脑(代理 Proxy),从而实现代理商的更多服务(织入 Weaving)。
实际上,就是Spring通过动态代理技术(底层用反射实现)生成代理对象,代理对象方法执行时进行增强功能的介入,再去调用目标对象的方法,从而完成功能的增强。
(2)AOP的作用及优势:
作用:在程序运行期间,在不修改源码的情况下,对方法功能进行增强。
优势:减少重复代码,提高开发效率,并且易于维护。
总结:AOP就是通过预编译方式和运行期间动态代理实现在不修改源码的情况下,给程序动态统一添加特定的功能的一种技术。
AOP的主要功能是日志记录、性能统计、安全控制、事务处理、异常处理等。
面向切面编程是希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,只要修改这个行为即可。
(3)AOP术语:
目标对象(Target) | 代理的目标对象 |
代理(Proxy) | 一个类被AOP织入增强后,就产生了一个结果代理类 |
连接点(Joinpoint) | 所谓连接点是指那些被拦截到的点。 在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。 |
切入点(Pointcut) | 切入点是指我们要对哪些连接点(Joinpoint)进行拦截 |
通知/增强(Advice) | 所谓通知是指拦截到Joinpoint之后要做的事情, 通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)。 |
5.切面(Aspect) | 是切入点和通知(引介)的结合 |
4.织入(Weaving) | 是指把增强应用到目标对象来创建新的代理对象的过程。 spring采用动态代理织入,而AspectJ采用编译期织入和类装载期织入。 |
三、什么是JavaBean?
1、bean的含义是可重复使用的Java组件。
所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成,外界不了解其内部信息和运行方式的群体。
使用它的对象只能通过接口来操作。
2、Javabean实际上是指一种特殊的类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重复使用或者插入到其他应用程序中去。
3、Javabean具有以下几个特点:
(1)所有的属性都是private(私有的)
(2)提供默认构造方法
(3)提供getter和setter方法
(4)实现serializable接口(序列化接口)
4、spring bean的生命周期:
主要有五个部分:
1.实例化
实例化一个bean对象
2.属性赋值
为bean设置相关属性和依赖
3.初始化bean
4.使用bean
5.销毁bean
四、Spring的注入方式:(DI)(三种方式)
1、构造器注入
默认为无参构造,也可自行添加有参构造。
2、set方法注入:(现在常用,重点)
3、扩展方式注入:
使用p命名空间和c命名空间进行注入。
注:
类型 | 注入方法 |
简单类型 | 使用value属性注入 |
引用类型 | 使用ref属性 |
五、bean的自动装配:(三种)(IOC)
1、使用ApplicationContent.xml文件配置(XML文件)
可以在其中隐式自动装配bean
2、通过Java配置类来实现bean的自动装配
3、使用注解自动装配
对于DI(依赖注入)使用注解,将不再需要在spring配置文件(ApplicationContent.xml)中声明bean实例。Spring中使用注解,需要在原有spring运行环境上再做一些改变。需要Spring配置文件中配置组件扫描器,用于在指定的类里面扫描注解。