Spring基础

一,什么是Spring?
为什么要用Spring?
     Spring的本质就是管理软件中的对象,如何创建对象和维护对象之间的关系
1.Spring是一个开源的轻量级的应用开发框架,其目的是简化企业级的应用程序开发,减少入侵;
  
2.Spring 提供的IOC和AOP应用,可以将组件的耦合度降至最低,届解耦,便于系统日后的维护和升级;
 
 
二,Spring容器的简介:
   1)在Spring中,任何的java类和JavaBean都被当成 Bean处理,这些Bean通过容器管理和应用。
   2)Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦;
   3)Spring 容器有BeanFactory和ApplicationContext两种类型
 
什么是JavaBean:一种简单规范的Java对象
  
   何时使用Spring?
  当需要管理JavaBean对象时候就可以使用,Spring是最简洁的对象管理方案之一
 
 
三,Spring容器的实例化,如何创建对象
 
    ApplicationContext继承自BeanFactory接口,拥有更多的企业级方法,推荐使用该类型,实例化方法如下:
// 加载文件系统中的配置文件实例化 
       String conf = "c:\applicationContext.xml";   
       ApplicationContext ac = new FileSystemXmlApplicationContext(conf);
 
//加载工程classpath下的配置文件实例化
 String conf = "applicationContext.xml";
 ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
 
如何使用Spring?遵守Spring定义的规则,基于配置和默认规则,减少了代码的书写
 
四,Spring容器的使用
 
    1) 从本质上讲,BeanFactory和ApplicationContext仅仅是维护Bean定义以及相互依赖关系的的高级工厂接口,通过容器BeanFactory和ApplicationContext我们可以访问bean定义。
   2)  首先在在容器的配置文件 applicationContext.xml中添加
Bean的定义
   <bean id="标识符"  class=“Bean类型”/>
然后在创建BeanFactory和AppplicationContext容器对象后,调用getBean()方法获取Bean的实例即可
       getBean(”标识符“);
 
 
五,Bean的实例化
       Spring容器创建Bean对象的方法有一下3种 
          1)用构造器来实例化
          2 )使用静态工厂方法实例化
          3 )使用实例工厂方法实例化
 
 将对象创建的规则告诉Spring,Spring会帮你去创建对象;
基于配置和默认规则,减少了代码的书写!
 
Bean实例化的例子:
 a。用构造器来实例化:
   <bean id="calendarObj1"  class="java.util.GregorianCalendar"/>
 
   <bean name="calendarObj2"  class="java.util.GregorianCalendar"/>
  解释:id或name属性用于指定Bean名称,用于从Spring中查找这个Bean对象;
    class用于指定Bean类型,会自动调用无参数构造器创建对象
 
b。使用静态工厂方法实例化
 <bean id="calendarObj2" class="java.util.Calendar" factory-method="getInstance"/>
   id:属性用于指定Bean名称;
  class:属性用于指定工厂的类型;
  factory-method: 属性用于指定工厂中创建bean对象的方法,必须用static修饰的方法。
 
c。使用实例工厂方法实例化 
  <bean id="calendarObj3" class="java.util.GregorianCalendar"/>
 
<bean id ="dateObj" factory-bean="calendarObj3" factory-method="getTime"/>
  id 用于指定Bean名称;
 factory-bean 属性用于指定工厂Bean对象;
factory-method属性用于指定工厂中创建Bean对象的方法。
 
 
六。Bean的命名
   1)Bean的名称
      在Spring容器中,每个Bean都需要有名字(即标识符),该名字可以用<Bean>元素的id或name属性指定
   2)id属性比name严格,要求具有唯一性,不允许“/”等特殊字符
为已定义好的Bean,再增加另外一个名字引用,可以用<alias>指定:
     <alias name="fromname" alias="toname"/>
 
七。Bean的作用域
   Spring容器在实例化Bean时,可以创建以下作用域的Bean对象;
   下面的Bean作用域,可以通过<bean>定义的scope属性指定       
Singleton : 在每个Spring IOC容器中定义一个Bean定义对应一个对象
                        实例,默认 项
 
prototype :一个bean定义对应多个对象实例
 
request: 在一次HTTP请求中,一个Bean定义对应一个实例 ,仅限于     
                 Web环境
 
session  :在一个HTTPSession中,一个bean定义对应一个实例,仅仅限于Web环境
 
global Session :在一个全局的HTTPSession中,一个bean定义对应一个实例;
 
八。Bean的生命周期回调
   1)  指定初始化回调方法:
        <bean id="exampleBean "  class="com.foo.ExampleBean"  init-method="init">    </bean>
   2) 指定销毁回调方法,仅适用于 singleton 模式的bean
 
提示 :指定销毁回调方法,仅仅适用于singleton模式的bean
 
 
九,IOC概念
  DI全称是Dependency Injection,被翻译为 依赖注入;
  本质上讲 容器的工作就是创建bean时注入那些依赖关系,
 
DI主要有两种注入方式,即 Setter注入和构造器注入
  
Setter注入:在容器xml配制中,配置注入参数:
<bean id="dataSource" class="org.tarena.dao.JDBCDataSource">
  <property name="driver" value="oracle.jdbc.OracleDriver"/>
 </bean>
 
构造器注入:基于构造器的注入是通过调用带参数的构造器来实现的,容器在bean被实例化的,根据参数类型执行相应的构造器
   <constructor-arg index="0" ref="dataSource">

 

posted @ 2016-03-17 16:52  其修远兮  阅读(141)  评论(0编辑  收藏  举报