世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。 ——摘自周志明

spring-01

  1. Spring概述
    • 概述
      1. Spring是一个开源框架
      2. 为企业级开发而生
      3. 是一个IOC[DI]和AOP容器框架
      4. 有许多优良特性
        1. 非侵入式:基于Spring开发的应用中的对象可以不依赖Spring的API。
        2. 依赖注入:DI--Dependency Injection,IOC是最经典实现。
        3. 面向切面编程:AOP
        4. 容器:Spring管理应用对象的生命周期。
        5. 组件化:Spring实现了使用简单的组件合成一个复杂的应用。使用XML和注解来组合这些对象。
        6. 一站式:在IOC和AOP的基础上可以整合各种企业级应用的开源框架和优秀的第三方类库。(实际上spring自身也提供了表示层SpringMVC和持久层的SpringJDBC)
      5. Spring模块

          

    • 第一个spring
      1. 创建普通java项目,新建lib,添加jar包
        1. bean\context\core\expression  还有log包
        2. 在src目录下创建source folder,命名为config,config下新建applicationContext.xml

         2.创建com.ruixing.bean包,并穿件类

            1.Employee.java

              

            2.Dept.java

              

         3.在pplicaltionContext.xml里面配置对象

            1.通过set注入属性

              

            2.通过构造器注入属性值       当name属性省略时,可以通过index属性指定为哪个属性赋值

              

            3.为list类型属性赋值

              

            4.为map属性赋值  entry标签,确定一组键值对

               

             5.属性值为null

                <property name="属性名">

                  <null></null>

                </property>
         4.测试类
public class TestSpring{
    //根据配置文件创建容器对象
    ApplicationContext context = new ClassPathXmlApplicationContext("application");
    
    //方式1:根据<bean>的id值获取对象,返回类型是Object,需要强转 
    Employee e1 = (Employee) context.getBean("e1");
    System.out.println("根据id获取:"+e1);

    //方式2:根据对象的类型获取,但是要求对象只有唯一一个
    Employee e2 = context.getBean(Employee.class);
    System.out.println("根据类型获取:"+e2);
   
     //方式3:根据id+类型      常用
    Employee e3 = context.getBean("e1", Employee.class);
    System.out.println("根据id和类型获取:"+e3);
}

2.FactoryBean(注意:BeanFactory是Spring的顶层接口,面向开发spring的开发人员,并不是使用spring的开发者)

   1.Spring中有两种bean

     * 普通bean

     * 工厂bean:即FactoryBean

   2. 普通bean和工厂bean的区别

     * 普通bean就是该类的一个实体对象

     * 工厂bean返回的是:getObject()返回的对象

  3. 工厂bean必须实现org.springframework.beans.factory.FactoryBean接口

     

3.bean的作用域

 类别    
说明
singleton     默认的 在SpringIOC容器中仅存在一个Bean实例,也就是单例
propertype 多例,每次调用getBean()都会返回一个新的实例
request 每个HTTP请求,都会创建一个新的Bean
session 一次会话中共享一个bean,不同的Http session 使用不同的bean

 

 

 

 

 

 

 

 

注意:当bean为单例的时候,会在容器初始化时,初始化单例的bean。而propertype时,IOC容器获取实例时,才会创建bean实例对象。

4.  IOC容器的结构

    

 

posted @ 2018-12-19 20:21  白杯与咖啡  阅读(145)  评论(0编辑  收藏  举报