将工厂类注入其他bean

时间:2013-05-09 14:51:10

标签: java spring java-ee

我有一个工厂类,我想知道是否可以将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(...)

3 个答案:

答案 0 :(得分:0)

以下是示例代码

public class TestClass{
   //member variable defination. 

   @Inject
   AnimalMapper animalMapper; //defining mapper instance
}

我不确定您是否正在寻找此问题,但如果您可以更多地澄清问题,那么可以添加更多详细信息。

答案 1 :(得分: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...

答案 2 :(得分:0)

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

关于bean定义中factory-method的第43-43页。