В пассивировании CDI Способный компонент, возможно ли, чтобы зависимые от пассивации зависимости были повторно введены, а не пассивированы?В пассивировании CDI Способный компонент, возможно ли, чтобы зависимые от пассивации зависимости были повторно введены, а не пассивированы?
Рассмотрим этот код:
@SessionScoped
public class UserData implements Serializable {
@Inject
private Logger log;
private String data;
}
@ApplicationScoped
public class LoggerFactory {
@Produces
public Logger getLogger(){
...
}
}
public class Logger {
...
}
Так Logger
является неSerializable
, но я действительно не волнует. Когда UserData
десериализован, можно ли продлить продление на Logger
?
EDIT
Оригинальное обсуждение началось здесь:
http://www.cdi-spec.org/news/2015/07/03/CDI-2_0-EDR1-released/#comment-2119769909
Надеясь группа CDI Expert придумывает лучше, чем @Instance
Почему? – BalusC
Множество причин ... Что делать, если вы вводите EJB? Нужно ли это также сериализовать? Что относительно SFL4J? Logger не расширяет Serializable. –
CDI и EJB генерируют и вводят сериализуемые прокси-серверы, делегирующие далее доступный (и автоматически созданный) экземпляр в потоковой основе. Или вы столкнулись с «NotSerializableException»? – BalusC