首页 > 解决方案 > Spring - 如何调试以找到spring的自动装配或请求参数的具体用途?

问题描述

Spring 在请求参数中自动装配 - 我们称其为“bob”。

我不知道它在哪里或如何做到这一点,所以我无法调试它。什么 spring 特定代码(使用 intellij,所以我至少可以设置一个条件)适合查找请求参数的自动连接发生的位置,这样我就可以弄清楚系统在做什么?

标签: spring

解决方案


我想我理解了这个问题,所以我会尽力回答它。

您面临着在管理实例或让 Spring 管理它们之间做出选择的两难选择。如果您让 Spring 管理依赖注入,您经常会遇到希望对 bean生命周期进行更精细控制的情况。

默认情况下,Spring bean 是“单例”,这意味着只会创建该对象的一个​​实例,并且每个需要对该对象进行依赖注入的类都将收到相同的实例。

bean 生命周期的第一步是它的构造。你可以设置一个断点来捕捉任何用@PostConstruct. 本文描述了在bean初始化时需要运行一些代码,以及如何通过这个注解来解决。例如:

public class AnyBean {

    @PostConstruct
    public void init(){
        // any code or breakpoints inserted here will
        // be run whenever an instance of this bean is created.
        // if a singleton bean, only one instance is created and, 
        // only one @PostConstruct will be called.


        // If a bean is a prototype bean, a new instance will be created
        // for every dependency injection, and hence one @PostConstruct 
        // will be called for each.
    }
}

推荐阅读