This is a two step process: You can define a String property to hold
the "name" of the required instance to inject, and then inject the
appropiate instance with the given name.
For example you can define a constant:
<constant name="my.constant" value="non-default-instance" />
<bean type="com.foo.MyCustomClass" name="non-default-instance"
class="com.foo.MyCustomClassProvider" />
@Inject(value="my.constant")
public void setConstant(String value) {
this.constant = constant;
}
public initialization() {
provider = container.getInstance(MyCustomClass.class, constant);
}
HTH,
Gabriel
2012/9/30 Aum Strut <[email protected]>:
> Hi All,
>
> I am working on a requirement where i need to get instance of given class
> at run time using Struts2 Container and here is my Code
>
> public class MyClass{
>
> private Class<? extends MyCustomClass> provider;
>
> public MyClass(@inject Container container){
>
> provider=container.getInstance(); // this is where i got strucked
>
> }
>
> }
>
> Since Provider can by anyone who extends MyCustomClass so i am not
> sure before hand which implementation will be provided at run time.I
> am not sure how to get instance in this case from container.
>
> for e.g At run time there can be Either ClassA or ClassB or may be
> ClassC which all extends MyCustomClass.
>
> How can i pass this information to the container to get the instance
> of the class passed at run time?
>
>
> Thanks in advance
>
> -a
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]