达内笔记-Spring框架介绍-01

1.框架学习建议

 --先重点学习如何使用

 --熟练使用后,了解内部实现原理


2.Spring 框架

 1)Spring框架有什么作用
  Spring框架主要有以下功能
  --Spring核心IOC容器
  --Spring的AOP应用
  --Spring Web MVC框架

  --和其他技术整合应用,使用IOC,AOP


 2)为什么使用Spring
  主要是为了使用IOC和AOP功能
  IOC容器:管理程序中组件,建立组件关系
   Servlet-->Service-->Dao
       (创建组件对象,建立对象关联)
  AOP:可以将一个组件动态切入到其他组件方法中
       (可以通过配置将一个共通功能插入到原有一批
    组件的方法中)
    为什么使用?IOC和AOP机制可以实现组件对象解藕
  Spring Web MVC:可以简化开发Web MVC程序,
  便于IOC和AOP结合.

=====IOC应用=====

IOC概念
 Inversion of Control 控制反转/反向控制

  实质上称为控制转移,体现在获取对象的方式发生改变。
由原有new方式使用转换为由Spring创建之后注入使用。
通过Spring配置修改可以改变对象关系.
(控制权转到Spring框架,由Spring配置决定)

达内笔记-Spring框架介绍-01

1)创建组件对象
 *a.对象创建方法
  *构造器方式
  <bean id="" class=""></bean>
 静态工厂方法
    <bean id="" class="" factory-method=""></bean>
 对象工厂方法
    <bean id="" factory-bean="" factory-method=""></bean>
  *b.对象作用域
  对象作用域默认是singleton
    (一个容器中只有一个bean对象)
    可以通过<bean scope="singleton|prototype">
    prototype:每次getBean()返回的是不同对象实例
  
  以后可以扩展为scope="request|session"等
 
 c.指定对象初始化和销毁方法
    init-method:用于指定对象初始化方法
   (每次对象创建自动调用该方法)
  destroy-method:用于指定单例对象销毁方法
   (调用AbstractApplicationContext.clos()时触发)
  d.指定单例对象创建时机
  默认情况下,单例对象是在Spring容器ApplicationContext
   创建时自动创建bean对象;非单例是在getBean方法调用
   时创建.lazy-init="true"可以将单例对象创建时机推迟
   到getBean方法调用时。


2)维护对象关系(Dependency Inject依赖注入,简称DI)
 Spring IOC采用注入技术建立对象关联。
 注入又分为set注入、构造器注入。
  *a.set注入应用
   --添加接口类型变量和对应的setxxx方法
   --在<bean>定义中指定注入关系
  <bean id="" class="">
      <property name="属性名" ref="要注入对象的id">
      </property>
    </bean>
  b.构造器注入应用
   --添加接口类型变量和带参数构造器
   --在<bean>定义中指定注入关系
    <bean id="" class="">
       <constructor-arg index="第几个参数,从0开始" 
     ref="要注入对象的id">
       </constructor-arg>
    </bean>