Spring总结

Spring总结

关于Spring

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件.它是一个全面的,企业应用开发一站式的解决方案,贯穿表现层,业务层,持久层.但是Spring任然可以和其他的框架无缝整合.

Spring的特征

  1.控制反转:一个对象依赖的其他对象通过被动的方式传递进来,而不是这个对象自己创建或查找依赖对象,简单说,以前是我们手动把对象new出来,现在这个工作交给了Spring,我们不需要new对象了,只需获取对象即可
  2.面向切面:Spring支持面向切面编程,并且把应用业务逻辑和系统服务分开
  3.容器:Spring包含并管理对象的配置和生命周期

Spring常用模块

  1.核心容器:核心容器提供Spring框架的基本功能.核心容器的主要组件是BeanFactory,它是工厂模式的实现.BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开
  2.Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息.Spring上下文包括企业服务,例如:JNDI,EJB,电子邮件,国际化,校验和调度功能
  3.Spring AOP:Spring AOP模块直接将面向切面编程功能集成到了Spring框架中.可以将一些通用的任务,如安全,事务,日志等集中进行管理,提高了复用性和管理的便捷性
  4.Spring MVC:MVC框架是一个全功能的构建Web应用程序的MVC实现.MVC容纳了大量视图技术,其中包括JSP,Velocity等

Spring创建对象的三种方式

1.空参构造方法 输入图片说明
2.静态工厂创建:有static,可以通过类名直接调用,所以不用创建工厂对象 输入图片说明
输入图片说明
3.动态工厂:因为没有static,所以需要创建工厂对象 输入图片说明输入图片说明

bean元素

bean元素的scope属性:
  singleton(默认值):单例对象,被标识为单例的对象,在spring容器中只存在一个实例
  prototype:多例原型,被标识为多例的对象,每次在获得的时候才会创建,每次都是新的对象
  request:web环境下,对象与request生命周期一致
  session:web环境下,对象与session生命周期一致

Spring中bean的属性注入

1.set方法注入:
值类型注入
输入图片说明
引用类型注入
输入图片说明
输入图片说明
2.构造函数注入
3.复杂类型注入
数组类型
输入图片说明
List/Set类型
输入图片说明
Map类型
输入图片说明
Properties类型
输入图片说明

在web项目中配置Spring容器

  目的:让Web项目在启动的时候就创建Spring容器,我们只需要获取即可,不用创建容器

1.在web.xml中配置:
  配置监听器
  指定Spring配置文件的位置
输入图片说明
2.在Class中获取Spring的容器:从ServletContext中获取 输入图片说明

使用注解代替xml配置

1.在applicationContext.xml配置文件中导入新的命名空间(context约束)
2.开启注解代替xml配置:component-scan(自动扫描组件)
输入图片说明
3.把user注册到Spring中
输入图片说明
4.值类型注入
  第一种:通过反射的field赋值,破坏了封装性 输入图片说明
  第二种:通过set方法赋值(推荐)
输入图片说明
5.引用类型注入
  1.自动装配
输入图片说明
  2.手动指定
输入图片说明
6.指定初始化方法和销毁方法
输入图片说明

Spring和junit整合

  目的:创造Spring测试环境
1.导包(4个核心包+2个日志包+aop+test)
2.使用junit创建测试环境
输入图片说明
3.进行测试
输入图片说明

Spring的AOP简介

面向切面编程思想:横向重复,纵向抽取
Spring的AOP其实就是Sprin能够帮我们生成动态代理对象,Spring实现AOP的方式有两种,动态代理和cglib代理.
  1.动态代理:被代理的对象必须实现接口才能被代理,如果没有接口,将不能使用动态代理
  2.cglib代理:第三方代理技术,可以对任何类生成代理,代理的原理是对目标对象进行继承代理,如果代理对象被final修饰,则该类无法被cglib代理

Spring中AOP的名词

1.Jointpoint(连接点):目标对象中,所有可以增强的方法
输入图片说明

2.Pointcut(切入点):目标对象中,已经增强的方法

3.Advice(通知):增强的代码
输入图片说明

4.Target(目标对象):被代理的对象
输入图片说明

5.Weaving(织入):将通知织入到切入点的过程叫做织入

6.Proxy(代理):将通知织入到目标对象之后形成的代理对象

7.Aspect(切面):切入点 + 通知

Spring中通知的分类

1.前置通知:方法之前调用

2.后置通知:方法之后调用,如果出现异常不会调用

3.环绕通知:方法之前,之后都调用

4.异常拦截通知:如果出现异常就调用

5.后置通知,方法之后调用,无论是否出现异常都会调用

使用注解完成Spring动态代理

1.开启使用注解完成织入,这个开关一打开,我们就可以在通知对象中配置 输入图片说明
2.@Aspect:表示该类是一个通知类
注意:环绕通知比较特殊,需要手动调用一次原方法 输入图片说明
3.@Before("execution(* cn.itcast.service.ServiceImpl.(..))"):指定该方法是前置通知,并使用切点表达式指定增强的方法
输入图片说明
输入图片说明
输入图片说明
4.提取切点表达式到一个方法上,方便管理 输入图片说明

Spring中的Jdbc

1.导包
4个核心包(core,beans,context,expression)+
2个日志包(logging,log4j)+
spring-test包+
spring-aop(spring-test需要)+
c3p0连接池+
JDBC驱动+
spring-jdbc+
spring-tx(spring的事务包)

2.配置applicationContext.xml

3.把数据库连接信息分离出来,方便管理 输入图片说明
输入图片说明
db.properties : 数据库连接信息 输入图片说明

Spring中的事务

因为在不同的平台,操作事务的代码各不相同,Spring提供了一个接口,PlanformTransactionManager接口

Spring管理事务的方式:
  1.编码式(了解)   2.xml配置(重点)   3.注解(重点)

xml配置事务:
1.导入包 4个核心包+
2个日志包+
aop+aspect+aop联盟+weaving织入包(玩aop需要导入的包)

2.applicationContext.xml导入约束
输入图片说明
beans:最基本
context:读取properties配置文件
aop:配置aop
tx:配置事务通知

3.在applicationContext.xml中的配置   1.配置管理事务的核心类,这个核心类依赖于数据源,可以使用连接池 输入图片说明
  2.配置事务的通知,指定被增强的方法所拥有的事务属性,比如:select方法的事务属性是read-only="true",而update方法的事务属性是read-only="false" 输入图片说明
  3.将通知织入切入点中,配置切点表达式,指定哪些类中的哪些方法需要被代理 输入图片说明

注解配置事务:
1.前两步和xml配置一样 2.在applicationContext.xml中开启注解配置事务 输入图片说明
3.在需要被增强的方法中配置事务
输入图片说明
4.可以把注解加入到需要事务的这个类上,这样这个类中的所有方法都使用这个注解,如果有不同的需求时,在特定方法上加注解进行覆盖 输入图片说明

转载于:https://my.oschina.net/u/3591016/blog/1806427

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值