1

Apache Felix 4.2.1 iPOJO 1.11.0 を使用します。

ユーザーが要求したときに、コンポーネント インスタンスをプログラムで作成する必要があります。しかし、静的ファクトリメソッドで非静的フィールドを使用することはできません。

@Component
@Provides(specifications = {IProcessSearch.class})
public class ProcessSearch implements IProcessSearch {
    ...
    @Requires(filter = "(factory.name=ProcessSearch)")
    private Factory mProcessSearchFactory;
    ...
    /**
     * Factory methods for receive new component instance:
     */
    public static ProcessSearch createInstance() {
        return createInstance(null);
    }
    public static ProcessSearch createInstance(Properties pProperties) {
        InstanceManager lInstanceManager = (InstanceManager) mProcessSearchFactory.createComponentInstance(pProperties);
        return (ProcessSearch) lInstanceManager.getPojoObject();
    }

1)私が正しく理解していれば、 @Requires アノテーションを持つフィールドは静的にすることはできません。プロパティを取り、新しいコンポーネント インスタンスを受け取るファクトリ メソッドを作成する方法は?

2) そうするのは普通のことですか?

4

1 に答える 1