JBoss Weld CDI: внедрить один и тот же экземпляр в два разных объекта - PullRequest
1 голос
/ 14 декабря 2011

У меня есть два базовых класса A и B.B вводится в A.У меня есть третий класс C, введенный в A и B, как показано ниже:

class A {
    @Inject B b;
    @Inject C c;
}

class B {
    @Inject C c;
}

class C {

}

Я бы хотел, чтобы экземпляр C содержался в A и Bта же.Я мог бы использовать setC() метод в B, но это совсем не философия инъекции.Должен ли я использовать области сварки?Если да, то как мне быть?

Спасибо

1 Ответ

1 голос
/ 16 декабря 2011

Решение заключается в том, чтобы просто аннотировать мои занятия и инъекции с помощью @Singleton Annotation

class A {
    @Inject B b;
    @Inject @Singleton C c;
}

class B {
    @Inject @Singleton C c;
}

@Singleton
class C {

}
...