Spring第一章

SpringIOC依赖


        
            org.springframework
            spring-context
            4.3.7.RELEASE
        

        
            org.springframework
            spring-core
            4.3.7.RELEASE
        

        
            org.springframework
            spring-beans
            4.3.7.RELEASE
        

        
            org.springframework
            spring-context-support
            4.3.7.RELEASE
        

        
            org.springframework
            spring-expression
            4.3.7.RELEASE
        


        
            log4j
            log4j
            1.2.14
        

    

 


 id="p1" name="person1,person2" class="com.swjd.bean.Person" scope="singleton" lazy-init="true" init-method="init" destroy-method="destroy">

Spring第一章

  • why?(spring的作用)

Spring可以解决业务逻辑层和其他各层的耦合问题,也是一个框架的粘合剂,它让面向接口编程思想贯穿了整个系统,特点:高内聚,低耦合,设计层框架!

主要学习spring的以下部分:

  1. IOC思想
  2. AOP编程
  3. 声明式事务的支持
  4. 框架无缝整合其他框架
  • 常见模块?

20多个子模块,模块按组7大块,核心容器、数据访问/集成,Web,AOP(面向切面编程)、设备、消息和测试

 

  • Spring环境搭建?
  • IOC是什么?

控制反转,调用者的实例创建不再由调用者自己创建,而是由spring容器创建,这个过程把实例创建的控制权由应用代码转移到了外部容器,控制权发生了改变。

  • DI是什么?

依赖注入,给对象赋属性值,一定要保留空的构造方法和get/set的方法!

  • Bean标签里四个属性的作用:
  1. Name属性:给对象取名,名字可以同时取多个,但是不同的对象不能重复
  2. Scope对象作用域属性:
  1. scope = "singleton" 默认值,Spring容器默认创建的对象是单例!
  2. scope="prototype"  创建的对象是多例(每次使用对象的时候额外创建一个新的
  3. scope="session" 表示在一次会话范围内,Spring容器中的对象保持一个,公用同一个!
  4. scope="request" 表示在一次请求范围内,Spring容器中的对象保持一个,公用同一个

注意:后两个只能用在web项目里

  1. 对象懒创建(只有在scope = "singleton"才会生效

lazy-init表示对象的加载时机(true:懒加载(使用对象的时候才创建);false(spring框架一启动就加载))

 

  1. 对象创建完成后调用的方法,和对象销毁后调用的方法

init-method="对象创建完成后调用的方法" 

destroy-method="对象销毁后调用的方法"

 

  • spring创建对象的四种方式?
      1. 用无参构造方法创建


 id="p1" name="person1,person2" class="com.swjd.bean.Person" scope="singleton" lazy-init="true" init-method="init" destroy-method="destroy">
     name="id" value="957">
     name="name" value="貂蝉">
     name="sex" value="">
  

 

      1. 用带参的构造方法创建对象


id="p3" class="com.swjd.bean.Person">
    index="0" type="int" value="9528">
    index="1" type="java.lang.String" value="德玛西亚">
    index="2" type="java.lang.String" value="">

 

      1. 用静态工厂创建对象


id="p4" class="com.swjd.beanfactory.PersonFactory" factory-method="createPerson">

 

      1. 用非静态工厂创建对象


id="noStaticfactory" class="com.swjd.beanfactory.NoStaticPersonFactory">
id="p5" factory-bean="noStaticfactory" factory-method="createPerson">

 

  • Spring依赖注入的4种方式?
  1. 调用set方法注入

id="m1" class="com.swjd.bean.Man">
    
    name="id" value="1"/>
    name="name" value="刘德华"/>
    name="age" value="48"/>
   
    name="dog">
        bean="d1"/>
    

 

  1. 调用带参的构造方法注入

id="m2" class="com.swjd.bean.Man">
    
    index="0" type="int" value="2"/>
    index="1" type="java.lang.String" value="蔡徐坤"/>
    index="2" type="int" value="20"/>
    index="3" type="com.swjd.bean.Dog" ref="d1"/>

 

  1. P命名空间注入(本质依旧是set注入,语法简洁一些)

id="m3" class="com.swjd.bean.Man" p:id="3" p:name="八戒" p:age="108" p:dog-ref="d1">

 

  1. Spel表达式注入

id="m4" class="com.swjd.bean.Man">
    name="id" value="#{m1.id}">
    name="name" value="#{m2.name}">
    name="age" value="#{m3.age}">

 

---------------------------------基本类型-----------------------------------------------------

九、复杂类型的注入:

    1. 注入对象
    2. 注入数组


        
            123
            123
        
    

    1. 注入集合

List:


        
            1234
            1234
        
    

 

Set:

 
        
            12345
            12345
        
    

    1. 注入map

 

  
        
            中国"/>
            
        
    

你可能感兴趣的:(Spring第一章)