spring基础知识

1.Spring框架是个轻量级的Java EE框架。所谓轻量级,是指不依赖于容器就能运行的。Struts、Hibernate也是轻量级的。
  轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行在Glassfish、JBoss等支持EJB的容器中,而不能运行在Tomcat中。——《Java Web整合开发 王者归来》
  Spring以IoC、AOP为主要思想,其中IoC,Inversion of Control 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。AOP,Aspect Oriented Programming,面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便地添加、删除某些功能。Servlet中的Filter便是一种AOP思想的实现。


  Spring同时也是一个“一站式”框架,即Spring在JavaEE的三层架构[表现层(Web层)、业务逻辑层(Service层)、数据访问层(DAO层)]中,每一层均提供了不同的解决技术。如下:
  • 表现层(Web层):Spring MVC
  • 业务逻辑层(Service层):Spring的IoC
  • 数据访问层(DAO层):Spring的jdbcTemplate
2.spring的特点
  • 轻量级 spring是非侵入性的 - 基于spring应用的开发中的对象可以不依赖于spring的API
  • 依赖注入 DI
  • 面向切面编程 AOP
  • 容器 spring是一个容器,因为它包含和管理应用对象的生命周期
  • 框架 spring实现了使用简单的组件配置组合成一个复杂的应用,在spring中可以使用xml和java注解组合这些对象
  • 一站式 在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库
3.Spring容器

在Spring IOC 容器读取bean配置、创建bean之前,必须对他进行实例化,只有在容器实例化后,才能从IOC容器里获取bean实例并使用它

3.1 spring提供了两种类型的IOC容器实现

  • BeanFactory: IOC容器的基本实现
  • ApplicationContext: 提供了更多的高级特性,是BeanFactory的子接口

    BeanFactory是Spring框架的基础设施,面向Spring本身;ApplicationContext面向Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而非底层的BeanFactory

4.什么是IOC和DI?
     IoC,控制反转,将传统的对象创建流程转变为交由框架进行创建和管理。在Spring中,对象的创建交给Spring进行配置。它包 括依赖注入。
  DI,依赖注入,向类的属性设置值。
  IoC与DI的关系:依赖注入不能单独存在,需要在IoC基础之上完成操作。

5.Spring的bean

bean的实例化:
1.构造器实例化
2.静态工厂实例化
3.动态工厂实例化


Singleton:单例作用域,是spring容器默认的作用域,使用singleton作用域生成的是单实例,在整个Bean容器中仅保留一个实例对象供所有调用者共享引用。单例模式一般适用于那些无会话状态的Bean(比如辅助工具类,DAO组件,业务逻辑组件等等)

Prototype:原型模式,这是多实例作用域,针对每次不同请求,Bean容器均会生成一个全新的Bean实例以供调用者使用,他适用于那些需要保持会话状态的Bean实例,有一点值得注意:Spring不能对一个property bean的整个生命周期负责,容器在初始化、装配好一个property实例之后,就将他交给客户端,就不管了。因此客户端要负责property实例的生命周期管理

Request:针对每次HTTP请求,spring容器都会根据bean的定义创建一个全新的bean实例,并且该bean实例仅在当前http request内有效,因此可以根据需要放心的更改实例内部状态,而其他请求中根据Bean定义创建的实例,不会看到这些特定于某些请求的状态变化,当处理请求结束,request作用域的Bean实例将被销毁,该作用域仅在基于webspringApplicationContext情形下才有效

Session:针对某个HTTP session Spring容器会根据bean定义创建一个全新Bean实例,并且该Bean实例仅在当前的HTTP session内有效。该作用域仅在基于webspring ApplicationContext情形下才有效

Globalsession :该作用域类似于标准的 http session 作用域,不过他仅仅在基于 portlet web 应用中才有意义。。。。该作用域仅在基于 web spring ApplicationContext 情形下才有效。

Singleton:单例作用域,是spring容器默认的作用域,使用singleton作用域生成的是单实例,在整个Bean容器中仅保留一个实例对象供所有调用者共享引用。单例模式一般适用于那些无会话状态的Bean(比如辅助工具类,DAO组件,业务逻辑组件等等)

Prototype:原型模式,这是多实例作用域,针对每次不同请求,Bean容器均会生成一个全新的Bean实例以供调用者使用,他适用于那些需要保持会话状态的Bean实例,有一点值得注意:Spring不能对一个property bean的整个生命周期负责,容器在初始化、装配好一个property实例之后,就将他交给客户端,就不管了。因此客户端要负责property实例的生命周期管理

Request:针对每次HTTP请求,spring容器都会根据bean的定义创建一个全新的bean实例,并且该bean实例仅在当前http request内有效,因此可以根据需要放心的更改实例内部状态,而其他请求中根据Bean定义创建的实例,不会看到这些特定于某些请求的状态变化,当处理请求结束,request作用域的Bean实例将被销毁,该作用域仅在基于webspringApplicationContext情形下才有效

Session:针对某个HTTP session Spring容器会根据bean定义创建一个全新Bean实例,并且该Bean实例仅在当前的HTTP session内有效。该作用域仅在基于webspring ApplicationContext情形下才有效

Globalsession :该作用域类似于标准的 http session 作用域,不过他仅仅在基于 portlet web 应用中才有意义。。。。该作用域仅在基于 web spring ApplicationContext 情形下才有效。


总结

使用spring 框架,将对象之间的依赖关系交由 Spring 容器进行控制,通过使用 XML文件将对象之间的调用关系从代码中分离,避免硬编码所造成的过程程序耦合,这正是 Spring 框架实现解耦的核心思想。

Spring 的基础:

最基本最重要的包:

Org.springframework.beans

Org.springframework.context

基本的class

BeanFactory

ApplicationContext




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值