Java – use auto assembled beans in objects created at run time

I have a class B that implements the w interface It has a default implementation of the W method Classes C and D override the default implementation. They require a service whose bean is instantiated by spring Strings a and B come from the user, so I can't create B / C / D beans in advance So I have a factory that creates a new object based on user parameters (it will create B / C / D Based on parameters) What clean methods can I use the service beans (AA / BB / cc / DD, etc.) inside C and D (the spring is automatically assembled during server startup, and the parameters required to instantiate B / C / D are not available) or is there a better way to solve this problem?

Class B implements W{
      String a;
      String b;
      B (String a,String b);

      w_method(){

      }
   }

    Class C extends B {
      @Autowired
      Service aa;

      @Autowired
      Service bb;

      @Autowired
      Service cc;

      @override
      w_method(){
      }
    }

Class D extends B {
  @Autowired
  Service dd;

  @override
  w_method(){
  }
}

Solution

I think the easiest way is to connect the service to the factory and invoke setter on the B / C / D object before returning, instead of trying to use @Autowired..

Or use the constructor parameter method of axtavt If you want to avoid relying on ApplicationContext, you can use lookup method injection, but you must release a patch according to this blog post: http://nurkiewicz.blogspot.co.uk/2010/08/creating-prototype-spring-beans-on.html

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>