Не влияет на это вообще.Классы - это классы, объекты - это объекты.Они не управляются, им не мешают, с ними ничего не происходит.Они не особенные, ни в коем случае.
Статические синглоны - это статические синглоны, Java - это java.
Все, что вам нужно знать, это макет загрузчика классов вашего контейнера и его связь.к вашим развернутым приложениям и ресурсам.(Например, классы в одном приложении не могут видеть классы в другом приложении.) В большинстве случаев это не так важно.Иногда все становится сложнее.
Но по большей части это просто Java.
Дополнения:
Лучший способ взглянуть на этопросто сгруппируйте ваши классы по блокам локальности.
Давайте возьмем простое веб-приложение, использующее EJB.
Веб-приложение развернуто в артефакте WAR, а EJB можно развертывать отдельно.как отдельные EJB в контейнере или, что более вероятно, в EAR.Когда вы упаковываете свое приложение в EAR, вы, вероятно, также объедините WAR в EAR.Итак, в конце EAR содержит вашу WAR и ваши EJB.
Теперь во время разработки, в этом случае, у вас будут классы, которые находятся в одной из трех категорий.
Классы, относящиеся исключительно к EJB (например, Session Beans).
Классы, относящиеся исключительно к WAR (например,как класс сервлета).
Классы, относящиеся к обоим (возможно, к базе данных).
Итак, простой способ упаковкиони находятся в трех файлах фляги.JAR-файл для вашей WAR (на самом деле это WAR-файл с классами в WEB-INF / classes), JAR-файл для ваших EJB-компонентов и JAR-файл для 3-го типа, мы будем называть это библиотекой.
С точки зрения зависимости сборки сборка WAR зависит от lib, а сборка EJB зависит от lib.Но ни WAR, ни EJB не зависят друг от друга, поскольку они ничего не делят напрямую, только косвенно через 3-й библиотечный jar.Библиотека jar является автономной, поскольку она не зависит ни от WAR, ни от EJB.Обратите внимание, что ваши интерфейсные классы EJB Session Bean будут входить в библиотечный jar (поскольку оба уровня полагаются на них).
На вашем ухе вы просто связываете библиотечный jar, WAR и EJB jar вместе скаталог META-INF и файл application.xml.WAR имеет свою собственную структуру, с WEB-INF и всеми, у EJB jar есть META-INF и ejb-jar.xml.Но следует отметить, что lib.jar НЕ находится в каталоге WEB-INF / lib, он находится в комплекте EAR и, таким образом, совместно используется как EJB, так и WAR, используя chicanery загрузчика классов, за который отвечает контейнер.
Это важно отметить.Например, если у вас есть, скажем, простой статический синглтон в вашем lib jar, то ОБА и WAR, и EJB будут использовать этот синглтон, так как они все являются частью одного загрузчика классов.Чтобы использовать этот синглтон, это просто обычная Java.Ничего особенного там нет.
Если бы EJB и WAR были развернуты по отдельности, им КАЖДАЯ потребовалась бы собственная копия lib.jar, а в случае Singleton они НЕ поделились бы ею, поскольку каждый модульесть собственный загрузчик классов.
Таким образом, если исключить некоторые реальные потребности записи, проще объединить все в EAR и рассматривать как EJB-уровень, так и WAR-уровень как единое интегрированное приложение.
Дополнения 2:
Люди не слишком много говорят об использовании классов в разработке Java EE, потому что им не о чем говорить, они просто используют их, как в любой Java-программе.Ты слишком обдумал это здесь.
Идиома 3 jar: war, ejb, lib - это та, которую я использовал годами, потому что она разделяет 3 проблемы и ограничивает зависимости.Клиент -> lib -> EJB.Это также упрощает сборку, поскольку клиентам обычно нужны только lib jar и java.В среде IDE Netbeans этим тривиально управлять.С незначительной работой это просто в других IDE или даже в ant / maven.Это не большое бремя, но содержит три части относительно чистыми.
Зависимость и управление Jar - это кошмар любого крупного Java-проекта, и особенно в EJB, когда вы имеете дело с различными развертываемыми артефактами.Все, что может помочь смягчить, что является победой, в моей книге, и по правде говоря, чистый, автономный lib jar очень помогает, особенно в том, что вам нужно интегрировать и использовать эту lib с другим кодом.Например, если вы позже напишите внешний клиент с графическим интерфейсом, используя удаленные EJB-компоненты или даже веб-службы, lib jar будет единственной зависимостью, которую имеет клиент.Преимущества этого jar намного перевешивают незначительную боль, которая требуется для настройки библиотеки такого типа.
В конце концов, lib jar - это просто jar, как и любой другой jar, который вы хотите использовать в своем приложении (как регистрация или любые другие популярные банки от третьих лиц).