В нашем проекте мы хотели бы создать кеш для информации LDAP, и кажется, что Guava - хороший выбор.Доступен ли кэш Guava в EJB 3.0
Однако у меня есть некоторые проблемы, так как мы используем EJB 3.0.
В принципе, у нас есть один класс UserDAO, который отвечает за получение необходимой информации LDAP, а кэш Guava объявляется статичным в UserDAO.
Могу ли я просто использовать этот UserDAO в ejbs? У меня две проблемы: 1. ejb не разрешает чтение/запись статического поля, если ejbs запускаются в нескольких JVM. UserDAO уже имеет статический кеш. 2. ejb не позволяет создавать собственные потоки пользователей, и я думаю, что это правило распространяется на использование библиотеки MultiThread? Я не уверен, как реализован Guava Cache?
Спасибо!
Технически управление потоками выполняется Guava: вы сами не выполняете управление. Кроме того, избегайте 'static', попробуйте использовать' @ Singleton' для переноса вашей реализации кэша. Например, посмотрите http://blog.iadvise.eu/2014/01/13/caching-in-a-jee-dont-write-it-yourself-use-loadingcache-from-google-guava-libraries/. –
Спасибо, Оливье! Тем не менее, @Singleton пока недоступен в ejb 3.0, я думаю. Кроме того, даже Guava управляет потоками, они все еще являются нитями, неизвестными контейнером ejb? – songofsp3