Spring

Spring:一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。

    常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。

主要模块:

  1. Spring AOP  面相切面编程
  2. Spring ORM  Hibernate|mybatis
  3. Spring Core  提供bean工厂 IOC
  4. Spring Dao  JDBC支持
  5. Spring Context  提供了关于UI支持,邮件支持等
  6. Spring Web 提供了web的一些工具类的支持
  7. 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(串行化) 
    这是花费最高代价但是最可靠的事务隔离级别,事务被处理为顺序执行。除了防止脏读、不可重复读外,还避免了幻像读。
posted @ 2020-05-25 21:35  张张小张  阅读(89)  评论(0)    收藏  举报