序言

Spring Bean到底是什么?解决什么问题?

解决主动new各种对象的问题

bean就是由IOC容器初始化、装配及管理的对象

Spring中的bean默认都是单例的,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。

@Bean和@Autowired 

通过反射实现@Autowired注解

spring有三种配置方式

  1. 基于XML
  2. 基于注解
  3. 基于java

一、XML配置

  1. instantiate bean对象实例化
  2. populate properties 封装属性
  3. 如果Bean实现BeanNameAware 执行 setBeanName
  4. 如果Bean实现BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上下文对象 setApplicationContext
  5. 如果存在类实现 BeanPostProcessor(后处理Bean) ,执行postProcessBeforeInitialization
  6. 如果Bean实现InitializingBean 执行 afterPropertiesSet
  7. 调用<bean init-method="init"> 指定初始化方法 init
  8. 如果存在类实现 BeanPostProcessor(处理Bean) ,执行postProcessAfterInitialization
  9. 执行业务处理
  10. 如果Bean实现 DisposableBean 执行 destroy
  11. 调用<bean destroy-method="customerDestroy"> 指定销毁方法 customerDestroy

实战总结

1.对象交于Spring创建

  第一步:添加UserInfo

package cn.mf.bean;

public class UserInfo {

    private String name;
    private Integer age;
    private Car car;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Car getCar() {
        return car;
    }
    public void setCar(Car car) {
        this.car = car;
    }
    @Override
    public String toString() {
        return "UserInfo [name=" + name + ", age=" + age + ", car=" + car
                + ", getName()=" + getName() + ", getAge()=" + getAge()
                + ", getCar()=" + getCar() + "]";
    }
}
View Code

相关文章:

  • 2021-05-08
猜你喜欢
  • 2021-06-08
  • 2021-09-29
  • 2021-12-25
  • 2021-12-30
  • 2022-01-05
  • 2022-01-08
  • 2021-12-27
相关资源
相似解决方案