使现有实例成为春天

时间:2019-03-27 14:47:44

标签: java spring javabeans

我正在Spring Boot中开发一个框架,某些应用程序会使用该框架。在运行时的某个时刻,应用程序为我提供了(框架) 类A的实例,我想(使用spring)对其func方法进行赋值。
问题在于,我不是构造此实例的人,因此无法通过applicationContext.getBean(A.class)创建它。
有没有办法给Spring这个实例并告诉它使它成为一个bean(或用它代理)?

public interface A {
    void func(int i);
}

方面:

@Aspect
public class AspectClass {

   @Around("execution(*com.A.func(..))")
   public void funcAspect(ProceedingJoinPoint joinPoint) throws Throwable {
        ....
   }
}

我希望它类似于:A bean = applicationContext.makeBean(instanceOfA)

编辑:我无法控制A的构造,我不是构造它的人,我只是得到了它的现有实例并希望从现在开始介绍其func方法。

1 个答案:

答案 0 :(得分:0)

您是否知道Java @Bean类中的@Configuration批注?这是创建bean的第三种流行方法,而这恰好在当您不希望Spring容器从候选类实例化默认bean而是创建自定义对象(在@Bean方法中)时,对对象的任何调整(在返回之前),最后返回该实例。 Spring会在其应用程序上下文中自动将该(您的自定义对象)对象注册为Bean。