Spring入门小知识

一 Spring概念


1 优点

1.1 一站式(full-stack)轻量级的开源框架

    轻量级:可以更合理的分配资源,使用最合适最小的资源完成当前需求

    一站式:可以对dao、service、web层都提供支持

1.2 两大核心功能:

                a. IOC (Inverse Of Control)

                          把创建对象的权利交给Spring,以被动接受的方式获取对象的思想

                          步骤一:通过读取配置文件来反射创建对象

                          步骤二:将所有创建的对象存到Map中,方便使用时获取

                          这个Map称为容器,也可以用List来代替,但是Map更方便查找

                         避免了 new ,实现了程序间解耦,提高运行效率,减小服务器压力

                b. AOP (Aspect Oriented Programming)

1.3 能够整合各种第三方框架

1.4 解耦,简化开发,避免硬编码,将对象间的依赖关系交由Spring进行控制。

        什么叫解耦?

       编译时不依赖,运行时依赖。

     解决方法:

       第一种: 利用反射

       第二种: 提供配置文件,用工厂来生产对象

1.5 AOP编程

1.6 声明式事务

2 BeanFactory 和 ApplicationContext 的区别

2.1 BeanFactory 是 Spring 容器中的顶层接口且对象只在使用的时候才会创建

2.2 ApplicationContext

      是BeanFactory的子接口只要一读取配置文件,默认创建对象。

     其实现类:

         a. ClassPathXmlApplicationContext

            从类的根路径下架在配置文件(通常使用)

         b. FileSystemXmlApplicationContext

            从磁盘路径上加载配置文件,文件可以在磁盘任意位置

         c. AnnotationConfigApplicaionContext

           使用注解配置容器对象时,用该类创建Spring容器。读取注解

3 bean 标签

3.1 作用

      提供配置给spring创建对象,默认调用类中的无参构造。

3.2 属性

      id : 对象在容器中的唯一标识

      class : 类的全限定类名,用来反射创建对象

      scope : 对象的作用范围

·     singleton 默认值,单例

                    作用范围:

                     一个应用只有一个对象的实例,作用范围时整个引用

                   生命周期:

                    对象出生---应用加载,创建容器时

                    对象生存---容器在就一直存活

                   对象销毁---应用卸载,销毁容器时

·    prototype 多例

                  作用范围:

                  每次访问对象时,都会重新创建对象实例

                  生命周期:

                  对象出生---使用对象时

                 对象生存---只要对象在使用就一直存活

                 对象销毁---对象长时间不使用时,被GC回收

    ·factory-method 指定生产对象的方法

    · request web项目,将spring创建的对象存入request中

     `session web项目,将spring创建的对象存入session中

    `·global session web项目,在Portlet环境中应用,如没有,相当于session

    ·init-method 指定类中的初始化方法名称

    ·destrory-method 指定累中销毁方法名称

3.3 bean 实例化的三种方式

       1) 默认使用无参构造

       2)spring管理静态工厂

      3)spring管理实例工厂

4 依赖注入(DI Dependency Injection)

4.1 概念

          A is B : A 实现了 B 或者 A 继承了 B ,即 A 就是 B

          A has B : A 的对象中有一个私有属性B , 就是A 依赖 B

         依赖注入就是给对象中的属性赋值。常用的方式由set注入和构造方法注入。

4.2 set方法注入

         如果是自己写的类,或者简单属性可以直接赋值,但是如果属性是框架中的,

         就无法直接赋值,只能通过自己或者spring调用set方法来赋值。

        spring 中使用<bean>下的<property name=""  value=""> 来为属性赋值

4.3 构造方法注入

        spring 中使用<bean>下的<constructor-arg name=""  value=""> 来为属性赋值,

        类中需要提供一个对相应参数的构造函数

4.4 P名称命名空间注入

      本质调用set方法,基本不用

4.5 注入集合属性

       String[] arg :

                      <property name="...">

                             <array>

                                   <value>...</value>

                           </array>

                      </property>

       Set<?>

                     <property name="...">

                            <set>

                                <value>...</value>

                            </set>

                     </property>

       List<?>

                    <property name="...">

                            <list>

                                <value>...</value>

                           </list>

                    </property>

       Map<?,?>

               <property name="...">

                        <map>

                                 <entry key="..." value="..."></entry >

                                <entry key="..." >...</entry >

                        </map>

             </property>

      Properties

              <property name="...">

                       <props>

                       <prop key="...">...</prop>

                      </props>

             </property>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值