Spring 备忘 (一)

Spring 学习笔记 (一)

 

1. 使用版本 3.2.0的spring. 创建一个名称为TestSrping的普通web工程.

   将spring的libs文件夹中的jar拷贝到WEB-INF/lib下,注意javadoc和sourc的不需要

   

2. spring 3的版本中去掉了依赖包,所以需要额外找到commons-logging-1.1.1.jar拷贝到WEB-INF/lib下

 

   小试牛刀代码参考:test.spring包

 

3. Ioc控制反转,又叫依赖注入(Dependency Injection): 当某个Java实例(调用者)需要另一个Java实例(被调用者)

   时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例.而在依赖注入的模式下,创建被调用者的工作不再

   由调用者来完成,因此称为控制反转;创建被调用者实例通常有SPring容器来完成,然后注入调用者,因此也称为依赖注入.

 

依赖注入有两种:

 设值注入: Ioc容器使用属性的setter方法来注入被依赖的实例

 构造注入: Ioc容器使用构造函器来注入被依赖的实例

 

 区别: 设置注入时,Spring先调用Bean的无参构造器,创建实例,然后调用setter方法,

       构造注入,Spring直接调用有参数的构造器

 

4. 设值注入:参考附件工程中的 test.ioc.setter包中代码

 

5. Sping 通过配置文件来配置依赖关系,参考工程中bean.xml

 

6. Spring 容器, 基本接口BeanFactory,子接口ApplicationContext

   通常ApplicationContext的实现类:

      FileSystemConfigApplicationContext,

      ClassPathXmlApplicationContext,

      AnnotationConfigApplicationContext

   Web应用中:

      XmlWebApplicationContext,

      AnnotationConfigWebApplicationContext

 

7. 国际化

   ApplicationContext接口 继承自MessageSource,  

   MessageSource接口有下面三个方法:

   String getMessage(String code,Object[] args,Locale loc)

   String getMessage(String code,Object[] args,Sring default,Locale loc)

   String getMessage(MessageSourceResolvable resolvable,Locale loc)

   当程序创建 ApplicationContext时,会自动在配置文件中查找messageBean的配置,

   一旦找到,上述三个方法被委托给该messageBean,如果没有改Bean,ApplicationContext

   查找其父配置中的messageBean,如果还没有找到,则系统会自动创建一个空的StaticMessageBean

   的Bean,该Bean能接受上面三个方法的调用.

   在Spring中通常使用ResourceBundlMessageSource这个类

   

8. ApplicationContext的事件机制

   两个对象:

   (1) ApplicationEvent:容器事件,可以是自定义的事件(一个类必须继承自ApplicationEvent)

   (2) ApplicationListener:事件监听器,在Spring中配置了实现ApplicationListener接口的Bean

       Spring容器就会把这个Bean当成容器事件的监听器.

       当系统创建Spring,加载Spring容器是会自动触发容器事件,容器事件监听器可以监听容器事件,

       也可以监听自定义事件.程序中可以通过调用ApplicationContext的publishEvent来触发事件.

   内置事件:

   (1) ContextRefreshedEvent:ApplicationContext容器初始化或者刷新时触发该事件。

   (2) ContextStartedEvent:当使用ConfigurableApplicationContext接口的start()方法启动ApplicationContext容器时触发该事件。

   (3) ContextClosedEvent:当使用ConfigurableApplicationContext接口的close()方法关闭ApplicationContext容器时触发该事件。

   (4) ContextStopedEvent: 当使用ConfigurableApplicationContext接口的stop()方法停止ApplicationContext容器时触发该事件。

   (5) RequestHandledEvent: Web相关事件,只能应用于是用DispatcherServlet的Web应用.当Spring处理用户请求结束后触发.

   (包 test.springevent)

 

9. 在Spring的Bean中获得Spring容器(ApplicationContext的引用)

   bean需要实现ApplicationContextAware 接口,该接口包含一个setApplicationContext方法,传入ApplicationContext参数.

   这样容器在实例化bean时,会调用这个方法,并把容器本身作为参数传递给这个方法.

   (包 test.bean.get.appcontext)

 

附件工程文件中,需要导入spring 3.2.0 版本的lib里面的jar包

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值