Spring基础

Spring框架的引言

  Spring是集众多设计模式于一身的开源、轻量级的项目管理框架,主要用于对项目中组件对象的创建、使用和销毁

 

Spring核心思想是IOC和DI

IOC

   Inversion Of Controll 控制反转,指的是控制权力的反转,具体是指将原来项目中手工通过new关键字创建对象的权力交给Spring(工厂),工厂创建对象;

DI

  Dependcy Injection 依赖注入

  语法:将所需对象声明为成员变量并提供set方法,同时在工厂配置文件中使用property标签完成属性的注入;

IOC和DI的概念:

  将原有项目中通过new关键字创建对象的权力交给Spring,由工厂去创建对象,Spring矿建不仅要创建对象,还要在创建对象的同时去维护类与类之间的依赖关系(组件与组件的依赖关系),因此在IOC的基础上提出ID的概念。

Spring的三种注入方式

1.set注入

    语法:需要谁将谁声明为成员变量,提供set方法,在配置文件中进行注入

    注入细节:使用property标签

       注意:八种基本类型+String+Date使用value属性注入

                  对象类型引用类型使用ref注入

                  数组使用array、list使用list

                  set使用set

                  map使用map

                  properties使用props

2.构造注入

    语法:依赖组件声明为成员变量并提供构造方法

    注入细节:使用<constructor-arg name="注入参数变量名" index="参数编码在构造方法中的下标">

3.自动注入

    语法:一脸组件声明为成员变量,并提供set方法

    诸如细节:<bean id="" class="" autowired="byName | byType">

                     byName:成员变量名与工厂中bean的id一致则进行注入,找不到则不注入

                     byType: 成员变量的类型与工厂中bean的类型一致则注入,不同则不注入

                                  注意:当多个bean的类型一致时使用byType注入会报错

 

Spring工厂细节

  1.默认spring工厂在管理组件对象创建时,默认创建的是单例,默认配置如下:

    <bean id="xxx" class ="xxx"></bean>

    如果要修改为多例,可增加‘scope’属性。

    scope属性值: singleton: 单例 多用于dao和service                   prototype:多例,多用于action

  2.spring工厂原理

    反射+无参构造方法,解析xml:

Class<UserDao> forName = (Class<UserDao>) Class.forName("dao.UserDaoImpl");
UserDao newInstance = forName.Instance();
newInstance.save();

  3.bean的生命周期

     单例bean生命周期:工厂启用,单例bean随之创建,工厂正常关闭,则所有单例bean随之销毁;

     多例bean生命周期:每次调用时创建,工厂只负责创建,销毁交给JVM;

Spring工厂创建对象的好处

  1.   使用配置文件管理java类,在生产环境中变换类的实现时不再需要重新部署,修改文件即可;
  2.   spring默认使用单例模式创建bean,减少内存的占用;
  3.   通过依赖注入建立了类与类之间的关系(使java之间关系更为清晰,方便了维护和管理)

    

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值