0

我有一个工厂类,我想知道是否可以将AnimalMapper工厂类注入到其他需要它的 bean 中?

AnimalMapper 工厂类

public static Mapper create(final String type) {
    if (type.equalsIgnoreCase("dog")) {
        return new DogMapper();
    } else if (type.equalsIgnoreCase("cat")) {
        return new CatMapper();
    } ...
}

目前我正在使用AnimalMapper.create(...)

4

3 回答 3

0

你想达到什么目标?CDI 是这样的:

public class TestClass{

    @Inject @Any
    Instance<Mapper> mapper;

    public void myMethod(){
        if(isCat()){
            mapper.select(new AnnotationLiteral<Cat>(){}).get();
        }

        if(isDog()){
            mapper.select(new AnnotationLiteral<Dog>(){}).get();
        }
    }

}

@Dog
public class DogMapper implements Mapper...

@Cat
public class CatMapper implements Mapper...
于 2013-05-09T15:05:56.360 回答
0

这是示例代码

public class TestClass{
   //member variable defination. 

   @Inject
   AnimalMapper animalMapper; //defining mapper instance
}

我不确定您是否正在寻找此内容,但如果您可以进一步澄清问题,则可以添加更多详细信息。

于 2013-05-09T14:58:38.177 回答
0

请参阅参考文档:http ://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/pdf/spring-framework-reference.pdf

第 43-43 页关于 bean 定义中的工厂方法。

于 2013-05-09T18:30:23.363 回答