Java开发框架spring02-Bean

Bean的配置

spring容器支持XML文件(最常用)和Properties文件两种格式的配置文件。

  • xml配置文件的根元素是,它包含了多个子元素,一个子元素定义了一个Bean。
    在这里插入图片描述
Bean的实例化

有三种方法:

  • 构造器实例化(最常用)
  • 静态工厂实例化
    创建工厂类,在类中定义静态方法(class和factory-method)
  • 实例工厂实例化
    采用直接创建Bean实例的方式,在配置文件中,通过factory-bean属性配置一个实力工厂,然后使用factory-method属性确定使用工厂中的哪个方法。
Bean的作用域

spring 4.3 中为Bean定义了7中作用域:

  1. 在使用prototype作用域时,spring容器会为每个对该Bean的请求都创建一个新的实例。(在spring配置文件中,同样使用元素的scope属性,将Bean的作用域定义为prototype)
  2. singleton作用域对于无会话状态的Bean来说是最理想的选择。

在这里插入图片描述
在这里插入图片描述

Bean的生命周期管理
  1. Spring容器可以管理singleton作用域的Bean的生命周期,在此作用域下,Spring能够精确的知道该Bcan何时被创建,何时初始化完成,以及何时被销毁。
  2. prototypc作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。

在这里插入图片描述

一个实例:

package com.itheima.life;

    public class Life {
        //构造方法,也就是实例化
    public Life(){
        System.out.println("life start" );
        }
    //初始化方法
    public void initMethod(){
        System.out.println("initMethod start" );
        }
    //销毁方法
    public void destroyMethod() {
        System.out.println( "destroyMethod start");
        }
}

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

<!--scope="singleton"这个值是默认,在默认情况下spring能够全程跟踪bean的生命周期-->

    <bean id="life" class="com.itheima.life.Life" init-method="initMethod" destroy-method="destroyMethod”/>

</beans>

测试类:

package com.itheima.life;
import org.springframework.context.support.ClassPathxmlApplicationContext;
public class LifeTest {
    /**声明周期执行流程示例:
    *
    *实例化
    *初始化方法
    *消费方法
    */
public static void main(String[] args) {
    //定义配置文件路径
    string xmlPath="com/itheima/life/life.xml";
    //ClassPathxmlApplicationContext在加载配置文件时,对Bean进行实例化
    ClassPathXmlApplicationContext context = new ClassPathxmlApplicationContext(xmlPath);
    //ClassPathxmlApplicationContext提供了关闭容器的方法,这样bean的销毁方法才会被调用
    context.close();
    }
}    
Bean的装配方式

spring容器支持多种形式的Bean的装配方式,如:基于XML装配、基于注解(Annotation)的装配<最常用>和自动装配。

  1. 基于XML的装配(可能会导致XML配置文件过于臃肿),两种方式:构造注入,设值注入。设值注入必备以下条件:
  • Bean类必须有一个无参构造方法
  • Bean类必须为属性提供setter方法
  • 在配置文件中,使用元素为每个属性注入值
    使用构造注入:
  • Bean类必须提供带所有参数的有参构造方法
  1. 基于Annotation的装配
    在这里插入图片描述

  2. 自动装配
    自动装配就是将一个Bean自动注入到其他bean的Property中;spring的元素中包含一个autowire属性,可以通过设置autowire属性值来自动装配Bean。下面是autowire属性的5个值:
    在这里插入图片描述

代码后续再补充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值