一、Bean的作用域Bean 的作⽤域是指 Bean 在 Spring 框架中的某种⾏为模式。⽐如单例作⽤域: 表⽰ Bean 在整个 Spring 中只有⼀份, 它是全局共享的. 那么当其他⼈修改了这个值之后, 那么另⼀个⼈读取到的就是被修改的值作用域说明singleton每个SpringIoc容器内同名称的Bean只有一个实例单例默认prototype每次使用该bean时会创建新的实例非单例request每个HTTP请求生命周期内创建新的实例Web环境中了解session每个HTTP Session生命周期内创建新的实例Web环境中了解application每个ServletContext生命周期内创建新的实例Web环境中了解websocket每个WebSocket生命周期内创建新的实例Web环境中了解一个ServletContext可以包含多个ApplicationContext,但是一般就只启动一个ApplicationContext二、Bean的生命周期Bean的生命周期可以分为以下5个部分1.实例化为Bean分配内存空间2.属性赋值Bean的注入和装配比如Autowired3.初始化a.执行各种通知如BeanNameAware,BeanFactoryAwareApplicationContextAware的接口方法b.执行初始化方法xml定义init-method使用注解的方式PostConstruct执行初始化后置方法BeanPostProcessor4.使用Bean5.销毁Beana.销毁容器的各种方法如PreDestory,DisposableBean接口方法destroy-methodComponent public class BeanLifeComponent implements BeanNameAware { private Dog singletonDog; public BeanLifeComponent() { System.out.println(执行构造方法); } Override public void setBeanName(String name) { System.out.println(执行通知BeanNameAware, name: name); } PostConstruct //初始化方法 public void init() { System.out.println(执行初始化方法); } public void use() { System.out.println(执行use方法); } PreDestroy public void destory() { System.out.println(执行销毁方法); } }