使用 new 关键字创建对象时如何调用 PostConstruct 方法

How to call PostConstruct method when creating an object with new keyword

我有一个 class Banana,它有一个 @PostConstruct 方法,我想在创建 class 对象后 运行。我正在使用这些调用

创建此 class 的对象
Cat cat = new Cat();
Banana b = new Banana(cat);

因此,从日志中我了解到,在创建 Banana 对象时未调用此 @PostConstruct 方法。我认为我实施的方式不是正确的用法。有人可以指导我如何正确实现它,因为这是我在 Java 项目上使用 Spring Boot 的第一个任务。在创建 Banana 对象后,我需要将该设置代码设置为 运行,那么除了 @PostConstruct

之外还有其他方法吗
@Slf4j
public class Banana {
    public Banana(Cat cat) {
        this.cat = cat;
    }
    private Cat cat;

    @PostConstruct
    public void setup() {
        // some code
    }

    public void execute() {
        // some code
    }
}

@PostConstruct 注解用于依赖注入完成后需要执行的方法,以执行任何初始化。 仅当框架控制对象的创建时,此方法才会由框架调用。

由于您手动实例化 Banana - 您还必须手动调用它。

spring(@PostConstruct@PreDestroy@Autowired 和许多其他)支持的所有注释在对象由 spring 创建时适用本身。 在这种情况下 spring 可以分析 class,处理注释等

当你自己实例化时 (new Banana()) - spring 甚至不知道你的对象存在因此不能调用它的任何方法,所以你被迫这样做由你自己。 所以是的,在这种情况下,您将不得不手动调用用 @PostConstruct 注释的方法,这意味着 @PostConstruct 注释非常无用,可以完全省略。