@ApplicationScoped bean-компонент CDI и @PersistenceContext - это безопасно?
Безопасно ли делать что-то подобное с CDI?
@Named
@ApplicationScoped
public class DAO {
@PersistenceContext
private EntityManager entityManager;
}
Я это понимаюEntityManager
сам по себе не является потокобезопасным, и поэтому не должен использоваться в общем глобальном контексте, таком как@ApplicationScoped
, Тем не менее, так как вводимый объект с@PersistenceContext
на самом деле поток-ориентированная обертка вокруг базовогоEntityManager
Это делает это нормально?
видел другие посты на эту тему, но покаЯ не смог найти авторитетного ответа для этого конкретного случая. Например:
Java CDI @PersistenceContext и безопасность потоков
Похоже, этобезопасно использовать с@Stateless
Например, но яя не уверен, что этоиз-за способа@Stateless
работает, или из-за чего-то свойственного@PersistenceContext
сам.
РЕДАКТИРОВАТЬ Источник моего замешательства в том, что@PersistenceContext
введенныйEntityManager
обертка, кажется, знает о текущем потоке, чтобы выяснить, есть лиУже выполняется транзакция. Так что, возможно, яЯ путаю понимание потока с безопасностью потока, и ониэто две разные вещи.