Java:Spring Framework中自带类的加载

环境

  • Spring Boot版本: 2.1.4.RELEASE
  • Spring Framework版本: 5.1.6.RELEASE

java

1. 加载类和方法说明

所有Spring框架自带的类,均通过下面的方法加载:

所在类:

AbstractAutowireCapableBeanFactory.java:550

所属方法:

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean

2. 使用的Maven的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>xyz.suancaiyu</groupId>
   <artifactId>SpringBootVueJSTest</artifactId>
   <version>1.0-SNAPSHOT</version>
   <description>Spring Boot + Thymeleaf + VueJS (Element-UI)</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.4.RELEASE</version>
   </parent>
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
   </dependencies>
</project>

3. 使用的IDEA调试参数截图:

idea调试Spring Boot截图
image-2712

Java:Spring Bean注入点

1. 实现org.springframework.beans.factory.InitializingBean接口,可以注册bean.

java

public class AnotherExampleBean implements InitializingBean {

    public void afterPropertiesSet() {
        // do some initialization work
    }
}

1.1 实现org.springframework.beans.factory.DisposableBean接口,可以在bean销毁前执行某些操作.

public class AnotherExampleBean implements DisposableBean {

    public void destroy() {
        // do some destruction work (like releasing pooled connections)
    }
}

2. 实现ApplicationContextAware 或者 BeanNameAware 接口.

3. 其他Ware接口

Spring 其他Ware接口