Tag: factory

Guice AssistedInject不会注入工厂

我正在尝试使用Guice 3.0 AssistedInject ,它不会实例化工厂。 SSCCE代码: 家长class public class ParentClass() { @Inject private MyFactory myFactory; private final Foo foo; private final Bar bar; public ParentClass() { if(myFactory == null) System.err.println(“Error: I should have injected by now!”); foo = myFactory.create(new Map()); // etc. } } 工厂界面 public interface MyFactory { Foo create(Map mapA); Bar create(Map mapB, Map […]

如何为需要MyClass.class参数的工厂方法注入Spring Bean

我正在尝试将java.util.prefs.Preferences bean注入我的主控制器。 控制器看起来像: @Controller class MyController { @Autowired private Preferences preferences; } application-context.xml文件为java.util.prefs.Preferences创建bean。 它使用工厂方法,所以我有以下条目来创建bean: Preferences.userNodeForPackage(param)为参数提供与Preference相关的类。 在这种情况下,Spring需要通过执行调用来创建bean: Preferences.userNodeForPackage(MyController.class); 如何将类传递给使用工厂方法实例化的spring bean? 谢谢 环境信息: Java 7 Spring 3.1

Spring:获取FactoryBean对象而不是FactoryBean.getObject()

简短的问题:如果我有类可以阻止FactoryBean接口,那么如何从FactoryBean对象本身而不是FactoryBean.getObject()获取? 长问题:我必须使用第三方基于Spring的库,这很难使用FactoryBean接口。 现在我总是必须配置2个bean: 实际上定义名为“XYZ”的bean(与“XYZ2”相比)永远不会改变,但由于工厂性质,我必须复制每个配置的代码。 名称为“aName”的bean的定义始终是新的(即每个配置都有自己的objectContext值)。 我想简化配置有一个工厂bean(删除“XYZ2”并删除链接到“aName”): 不幸的是,它并不像我预期的那么简单。 我想在运行时将工厂(即示例中的XYZ bean)与必要的对象(即“aName”,“aName2”)粘合在一起。 这种方法不起作用,因为当我向Spring询问FactoryBean对象时,它返回给我的FactoryBean.getObject(),由于缺少itemReader值,因此无法在那时实例化。 我希望SpringSource可以预见我的情况我可以通过“挂钩”FactoryBean.getObject()调用来在运行时提供所有必需的属性。 另一个复杂性让我误解了它的工厂链(Factory1从Factory2获取一个对象,我必须在运行时“挂钩”)。 任何想法将不胜感激。

Guice – 如何实现返回不同实现的工厂

假设我有一个名为Guice服务的服务,这里是它的构造函数 public GuiceService(IPayment payment) { this.payment = payment; } 我的代码用于使用Enum创建它 IPayment payment = new PaymentFactory.create(PaymentType.Cash); NaiveService naiveService = new NaiveService(payment); 而且我必须在某个地方进行工厂实施。 像这样的东西 public IPayment create(PaymentType paymentType) { IPayment cardPayment = null; switch (paymentType) { case Cash: cardPayment = new CashPayment(100); break; case Card: cardPayment = new CardPayment(10, 100); break; } return cardPayment; 现在我想使用Guice,我想我想使用FactoryModuleBuilder。 如果我有更多的IPayment实现,那么这样做的方法是什么。 (例如,CardPayment,CashPayment) […]

有效的Java作者:Joshua Bloch:第1项 – 静态工厂方法

我正在阅读Joshua Bloch的Effective Java ,我对Item1 Static Factory Method有疑问。 引用[布洛赫,第7页] 接口不能使用静态方法,因此按照惯例,名为Type的接口的静态工厂方法放在名为Types的不可实例化的类中。 例如,Java Collections Framework提供不可修改的集合,同步集合等。 几乎所有这些实现都是通过一个不可实例化的类(java.util.Collections)中的静态工厂方法导出的。 返回对象的类都是非公共的。 好。 查看源代码时,我看到java.util.Collection接口和带有私有构造函数的java.util.Collections类(不可实例化的类)。 我看到不可实例化的类Collections具有所有静态方法,就像Bloch所说的那样。 但布洛赫说,我没有看到两个class级之间的联系 接口不能使用静态方法,因此按照惯例,名为Type的接口的静态工厂方法放在名为Types的不可实例化的类中。 任何人都可以向我指出明显的事吗? 什么是他说的意思 返回对象的类都是非公共的 这是我获取java源代码的地方: http : //grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Collection.java?av = f