spring学习笔记第一天(1)

-------------------------------------------------------------------Spring简介------------------------------------------------------------

spring:全方位的整合形框架.

2003spring的第一个版本出现,版本号为1.28

 

依赖关系:由高到低

表现层

表现形式:由低到高

Spring的实例池负责做对象给高层用

控制层

业务逻辑层

持久层

数据层

Spring框架为分层以架构:7个模块组成,名模块构建于核心容器之上,核心容器定义了创建/配置及管理bean的方式;

Ø  springAOP:AOP的实现;通过配置管理特性, SpringAOP模块将面向切面编程功能集成至框架中,使Spring框架管理的任何对象均支持AOP. SpringAOP模块向基于Spring的应用程序中的对象提供事务管理服务.此模块无需依赖于EJB组件,可以使用SpringAOP将声明性事务管理集成至应用程序中.

Ø  springORM:整合其他ORM型框架; Spring框架中插入了若干ORM框架,提供ORM的对象关系工具,包括JDO, hibernateibats sql map, 都遵从Spring的能用事务及DAO异常层次结构.

Ø  springDAO:spring自己的持久化组件;JDBC DAO抽象层提供了意义重大的异常层次结构,简化了错误处理过程并极大地了需要编写的异常代码(如打开或关闭连接),运用此结构可以管理异常,处理不同数据库供应商招聘的错误消息. SpringDAO的面向JDBC异常遵从能用的DAO异常层次结构.

Ø  springWEB: SpringR web层框架;WEB上下文模块建立在应用程序上下文模块之上,向基于WEB的应用程序提供上下文,因而Spring框架支持与struts集成.同时,WEB模块简化了多部分请求的处理过程以及将请求参数绑定至域对象的工作.

Ø  SpringContext: Spring的上下文;核心模块的BeanFactory使Spring成为容器,上下文模块使其成为框架,此模块扩展了BeanFactory的概念,增加了对国际化(i18n)的消息.事件的传播以及验证的支持;同时,此模块提供诸多企业服务,:电子邮件,JNDI访问,EJB集成,远程以及时序调试(Scheduling)服务,支持对棋牌框架(velocity,freemarker)的集成

Ø  Spring Web MVC:整合web框架(struts);MVC框架是一个全功能的构建WEB应用程序的MVC实现.通过策略接口/MVC框架变为调试可配置,它容纳了大量的视力技术,包括JSP/Velocity/Tiles/iTextPOI.

Ø  SpringCore: Spring的核心,(包括IOC:指当上层组件调用下层组件时,通过Spring的配置文件去类型强转): SpringCore胜于提供Spring框架的基本功能,其主要组件为BeanFactory,是工厂模式的实现. BeanFactory使用反射控制(IOC)模式将应用程序的配置及依赖性规范与实际应用程序代码分开.

Spring的特点:

a)         重点是整合WEB层和ORM框架

b)         通过IOC方式解偶合

c)          通过AOP方式解决程序中共性问题并实现IOC思想

 

------------------------------------------------------------SpringBean封装机制------------------------------------------------------------

SpringBean的方式管理所有的组件,Spring,任何java对象以及java组件都可以当做Bean.

应用中各层的对象均由Spring管理,对象以bean的方式存在. Spring负责创建Bean的实例并管理其生命周期,bean运行于Spring的容器,Spring的上下文是生产Bean的工厂,beanSpring工厂生产的实例, Spring产生工厂时,需要确定每个bean的实现类.bean实例的使用者面向接口,因此无须关心bean实例的实现类,Spring工厂负责维护bean实例的实例化,使用者则无须关心.

BeanFactory接口:

BeanFactoryorg.springframeword.beans.factory. BeanFactory接口定义,是工厂模式(factory pattern)的实现,负责创建和管理bean. BeanFactory创建及颁发bean,并负责在实例化bean时创建bean之间的关系,此外, BeanFactory还可以参与到bean的生命周期中,调用对象的初始化函数和析构函数(XML中将自行定义的函数称为析构函数).

BeanFactory有实现类,其中org.springframeword.beans.factory.xml.XmlBeanFactory为常用类.但对于大部分java ee,推荐使用ApplicationContext,它是BeanFactory的子接口,常用的实现类是org.springframeword.context.support.FileSystemXmlApplicationContext.

BeanFactory接口代表Spring容器的根接口,Spring任何容器实现类都直接或间接的实现此接口

BeanFactory接口包括以下3个基本方法:

         containsBean(String name)

                   //判断Spring容器是滞包含idproBeanBean

                   Boolean flag=beanFactory.containsBean(“proBean”);

                   System.out.println(“是否包括proBeanbean:”+flag);

         getBean(String name)

                   //返回idproBeanbean

                   propertiesBean=(PropertiesBean)beanFactory.getBean(“proBean”);

                   propertiesBean.printBean();

                   //返回IDproBean且类型为com.hr.persist.PropertiesBeanbean

                   propertiesBean=(PropertiesBean)beanFactory.getBean(“perBean”,PropertiesBean.class);

                   propertiesBean.printBean();

         getType(String name)

                   //返回idproBean的类型

                   Class classType=beanFactory.getTYpe(“proBean”);

                   System.out.println(“idproBean的类型”+classType);

ApplicationContex

Sprin包括两种不同的容器:BeanFactoryApplicationContext,BeanFactory提供基本的IOC支持;ApplicationContext则基于BeanFactory,提供应用程序框架服务,如从properties文件中读取信息.Spring提供了BeanFactoryApplicationContext的多个实现.

BeanFactory提供以编程方式操作容器的基本功能,Context包增加了ApplicationContext,使BeanFactory的功能得以扩展,大多数情况下,ApplicationContext允许以声明的方式操作容器,无须手动创建.

ApplicationContext继承了BeanFactory接口,提供BeanFactory的所有功能,同时具有部分新功能

a)         提供国际化的支持

b)         资源访问,URL和文件

c)          事件传递

d)         载入多个配置文件

ApplicationContext通常使用以下两个实现类:

         FileSystemXmlApplicationContext:以指定路径下的XML配置文件创建ApplicationContext

         BeanFactory_beanFactory=new_FileSystemXmlApplicationContext(new String[]{“/WebRoot/WEB-INF/classes/applicationContext.xml”,”/WebRoor/WEB-INF/classes/bean.xml”});

ClassPathXmlApplicationContext:classpath路径下的xml配置文件创建ApplicationContext

         //搜索classpath路径,classpath路径下的applicationContext.xml.bean.xml创建AppliContext

         BeanFactory_beanFactory=new_ClassPathXmlApplicationContext(new String[]{“ApplicationContext.xml”,”bean.xml”})

Bean的基本行为及应用

BeanSpring的容器中存在以下两种基本行为:

a)         Singleton:单态

b)         Non-singletonprototype:原型

默认为singleton,Spring容器中公存在一个共享的实例.程序每次请求该IDbean,Sprin都会返回这个bean的共享实例.可以重复使用. Non-singleton创建及销毁bean的代价较大,应尽量避免bean设置为Non-singleton行为, Non-singleton行为的Bean实例化后,将完全交由使用Bean的程序进行管理,对于Non-singleton行为的bean,BeanFactory获得后完全等同于new关键字的作用.Spring不会跟踪管理Bean的生命周期的行为;

bean的行为设置为Non-singleton,则在配置该bean的节点中设置scope=”prototype”

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值