Spring
Spring:一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。
常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。
主要模块:
- Spring AOP 面相切面编程
- Spring ORM Hibernate|mybatis
- Spring Core 提供bean工厂 IOC
- Spring Dao JDBC支持
- Spring Context 提供了关于UI支持,邮件支持等
- Spring Web 提供了web的一些工具类的支持
- Spring MVC 提供了web mvc , webviews , jsp ,pdf ,export
SpringIOC:
- 控制反转,将创建对象的权力交给SpringIOC容器,不需要开发者手动创建,只需要调用相应的对象即可。
- 三种注入方式:构造器注入、setter方法注入、注解注入、P命名空间注入
- 自动装配:
- autowire=“byType、byName、constructor‘
- ref="自定义beanID"
- 全局开启default-autowire=”byName、byName"
- 通过注解实现@Autowire(spring支持、按Bean的类型)、@Resource(JDK1.6支持的注解、Bean的名字)
SpringAOP:面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,减少系统中的重复代码,降低了
模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理。
- 前置通知(Before advice):在目标方法执行前执行。
- 返回后通知(After returning advice):在目标方法不发生异常、执行完毕后执行。
- 抛出异常后通知(After throwing advice):在目标方法抛出异常后执行。
- 后通知(After (finally) advice):无论目标方法是否异常都会执行。
- 环绕通知(Around Advice):环绕通知可以在方法调用前后完成自定义的行为。
SpringBean的安全性:Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。
Bean的作用域:
- singleton:单例,每个容器中只有一个Bean实例。
- prototype:多例,IOC容器可以创建多个Bean实例,每次返回的都是一个新的实例。
- request:没进行一次http请求,都会创建一个Bean的对象,在请求结束后销毁。
- session:同一个Session共享一个Bean实例。不同Session使用不同的实例。
- global-session:所有Session共享一个Bean实例。
Spring事务:编程式事务,声明式事务(注解)
Spring事务隔离级别:
- DEFAULT (默认)
这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。另外四个与JDBC的隔离级别相对应。 - READ_UNCOMMITTED (读未提交)
这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。 - READ_COMMITTED (读已提交)
保证一个事务修改的数据提交后才能被另外一个事务读取,另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。 - REPEATABLE_READ (可重复读)
这种事务隔离级别可以防止脏读、不可重复读,但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了不可重复读。 - SERIALIZABLE(串行化)
这是花费最高代价但是最可靠的事务隔离级别,事务被处理为顺序执行。除了防止脏读、不可重复读外,还避免了幻像读。
浙公网安备 33010602011771号