Java实训(2)-- Spring 核心 之 IOC - 2018-06-05

Spring

1.将类交给spring进行管理

2.构造spring工厂对象(BeanFactory,ApplicationContext)

3.通过spring工厂得到实例化对象


Spring IOC的几种注入方式

  1. 构造器注入

  2. 属性注入

  3. 接口注入

1. 通过构造器注入值

调用构造方法进行注入,类的构造方法必须存在

注入的参数类型与属性一致

可以指定参数或者不指定参数

指定参数可以乱序(通过 name 或 index 来指定参数)

不指定参数必须按照构造方法的参数顺序


      
      
      
      
      
      

2. 通过属性注入值

注入时会使用反射机制查找 set 方法

注入的参数类型

基本数据类型(数值类型,字符类型 等)

对象类型

集合类型 ( set,list,map,数组 等)



      
      
      
      
      
      
      
      
      
            1234
      
      
      
      
           
               spring
               计算机
               软件
           
      


Spring 的两种工作环境

  1. ApplicationContext

  2. BeanFactory

1. ApplicationContext

  1. ApplicationContext读取xml配置的两种方式
1. ApplicationContext  context = new ClassPathXmlApplicationContext(“applicationContext.xml”);

2. ApplicationContext context = new FileSystemXmlApplicationContext("src\\applicationContext.xml");

使用ApplicationContext加载配置文件时,spring会按照先后顺序实例化对象,

如果对象间使用构造器进行引用或关联,则会修改实例化的先后顺序,把依赖关系的类先进行实例化






  1. Java 代码获取对象实例:
//通过bean id获取对象实例(强制转换类型)
Book book = (Book) context.getBean("Book");

//通过泛型获取对象实例
Book book = context.getBean(Book.class);

2. BeanFactory (现在基本不用此方式)

ClassPathResource resource = new ClassPathResource("config/lifeConfig.xml");
BeanFactory factory = new XmlBeanFactory(resource);
Book book = factory.getBean(Book.class);

Bean 的作用域

在spring使用scope配置对象的作用范围(与生命周期类似

  1. prototype - 原型模式,每调用一次getBean都会产生一个新的对象

  2. singleton - 单例模式,在同一个spring上下文环境中只有一个实例对象

-- 在web环境中,还有request,session,application :

  1. request - 请求模式,在同一次http请求中只有一个对象实例

  2. session - 回话模式,在同一个HttpSession会话中只有一个对象实例

  3. application - 应用模式,在同一个应用程序中只有一个对象实例

你可能感兴趣的:(Java实训(2)-- Spring 核心 之 IOC - 2018-06-05)