厚土伯尼

导航

Spring 基础知识(二)Spring的bean初始化与生命周期,以及注入

Spring bean 初始化:

参考博文: https://www.cnblogs.com/luyanliang/p/5567164.html

1、 加载xml 文件、 扫描注解 ,形成bean定义对象仓库

2、分析仓库bean 定义对象,主要是分析bean与bean 之间的关系,为实例化做准备

3、通过反射机制实例化类,并进行属性赋值

 

Spring 初始化:

参考博文:https://www.cnblogs.com/ViviChan/p/4981712.html

在普通的JAVA工程中,我们可以通过代码显式new一个ClassPathXmlApplicationContext或者FileSystemXmlApplicationContext来初始化一个Spring容器。
 在Web工程中,我们一般是在web.xml中配置Spring框架提供的监听器 ContextLoaderListener 来启动。如下配置:
<context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>/WEB-INF/applicationContext.xml classpath:resources/services.xml</param-value>  
</context-param>  
<listener>  
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener>  

  

bean 的生命周期

bean 默认都是 Singleton , 如果配置singleton=false 或scope="prototype",则每次获取时 会产生一个新的实例

bean 初始化以及小会顺序:

可以控制bean 生命周期回调方法的 三种方式:

  • JSR-250的@PostConstruct@PreDestroy 优先级最高
  • 配置中的init-method 和 destroy-method 配置
  • 默认的初始化和destroy方法 , beans 标签中 default-init-method 和default-destroy-method 指定的方法名。

 

bean 集合类注入

参考: http://wiki.jikexueyuan.com/project/spring/injecting-collection.html

Spring注解@Resource和@Autowired区别对比

参考: https://www.cnblogs.com/think-in-java/p/5474740.html

@Autowired byType

@Resource (name type)byName or byType

posted on 2018-02-21 18:39  厚土伯尼  阅读(178)  评论(0编辑  收藏  举报