spring框架知识点总结(一)

新手上路#4

一、spring简介

1.spring是分层的javaSE/EE应用的轻量级开源框架,以IOC和AOP为内核。可以整合开源世界中众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

2.spring的作用
(1).方便解耦,简化开发
(2).AOP编程的支持
(3).方便程序的测试
(4).方便集成各种优秀的框架
(5).降低java API的使用难度

二、控制反转 IOC—Inverse Of Control

1.作用
不再使用自己new 对象的形式,而是将对象的创建反转给Spring框架来创建和管理,降低代码中的依赖关系。
需求:导入spring-context依赖,创建配置文件beans.xml,使用bean标签管理要对象类。

2.实例化bean的三种方式(spring创建对象的方式)
(1).spring使用默认无参数构造方法。
(2).使用spring静态工厂的方法创建对象,StaticFactory类中的静态方法。
(3).手动创建实例工厂类。

3.BeanFactory和ApplicationContext的区别
创建对象的时间节点不一样
ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么时候使用什么时候创建对象。

4.ApplicationContext接口实现类
ClassPathXmlApplicationContext
它是从类的根路径下加载配置文件,推荐使用

三、什么是依赖注入(DI)

1.什么是依赖注入
Dependency Injection。让spring框架给Bean对象的属性赋值,他是IOC的具体体现。
2.使用方式
构造方法注入;set方法注入。

四、Spring的IOC注解开发

使用注解需要
(1).在beans.xml中引入context的命名空间
(2).在beans.xml配置文件中开启注解扫描

@Component:把资源让spring来管理,相当于在XML中配置一个bean
@Controller:修饰WEB层
@Service:修饰业务层
@Respository:修饰持久层
@scope:描述类的作用范围

@Value:注入基本数据类型和String类型的数据给类的属性
@AutoWired:使用此注解可以省略set方法,只能注入其他bean类型
@Qualifier:和@AutoWired一起使用,用于指定id(类似别名);也可以单独使用 指定要注入对象的id
@Resource:不能作用在构造方法上,它依赖无参数的构造方法,所以类中必须存在一个无参数的构造方法,位置和@AutoWired相同

@Configuration:指定当前类是一个spring的配置类,当创建容器时会从该类上加载注解
@ComponentScan:用于指定spring在初始化容器时要扫描的包,作用和在spring的xml配置文件中的
@Bean:写在方法上,表名使用此方法创建一个对象存入Spring容器
@Import:用于导入其它配置类,在引入其它配置类时,可以不再写@Configuration注解。
@propertySource:用于加载.properties文件中的配置。

五、AOP概述

1.什么是AOP
全程是Aspect Orientied Programming,面向切面编程。
简单来说,AOP就是吧我们程序组重复的代码抽取出来,在需要执行的时候,使用动态代理技术,在不修改源代码的基础上,对我们已有的方法进行增强。

2.AOP的优势
减少重复代码;
提高开发效率;
维护方便。

3.AOP的应用
专业术语
Joinpoint(连接点):需要被拦截的点,在spring中,点就是方法。
PointCut(切入点):我们要对哪些Joinpoint进行拦截的定义。
Advice(通知/增强):拦截到jointpoint之后需要做的事情就是通知
前置通知:在原来方法之前执行
后置通知:在原来方法执行之后执行,特点:可以得到被增强方法的返回值
异常通知:目标方法出现异常执行,如果方法没有异常,不会执行,特点:可以获取异常的信息
最终通知:指的是无论是否有异常,总是被执行的。
环绕通知:在方法执行前和后执行,特点:可以阻止目标方法执行
Aspect(切面):可以理解为切面类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值