Архитектура коннекторов Java EE предоставляет набор аннотаций, чтобы минимизировать потребность в дескрипторах развёртывания.
-
Разработчик адаптера ресурсов может использовать аннотацию @Connector
, чтобы указать, что компонент JavaBeans является адаптером ресурсов. Эта аннотация используется для предоставления метаданных о возможностях адаптера ресурсов. При желании вы можете предоставить компонент JavaBeans, реализующий интерфейс ResourceAdapter
, как в следующем примере:
@Connector(
displayName = "TrafficResourceAdapter",
vendorName = "Java EE Tutorial",
version = "7.0"
)
public class TrafficResourceAdapter implements ResourceAdapter,
Serializable {
...
}
-
Аннотация @ConnectionDefinition
определяет набор интерфейсов и классов соединений, относящихся к конкретному типу соединения, как в следующем примере:
@ConnectionDefinition(
connectionFactory = ConnectionFactory.class,
connectionFactoryImpl = TradeConnectionFactory.class,
connection = Connection.class,
connectionImpl = TradeConnection.class
)
public class TradeManagedConnectionFactory ... {
...
}
-
Аннотация @AdministeredObject
обозначает компонент JavaBeans как управляемый объект.
-
Аннотация @Activation
содержит информацию о конфигурации, относящуюся к входящим подключениям из EIS, как в следующем примере:
@Activation(
messageListeners = { TrafficListener.class }
)
public class TrafficActivationSpec implements ActivationSpec,
Serializable {
...
@ConfigProperty()
/* порт для прослушивания запросов от EIS */
private String port;
...
}
-
Аннотация @ConfigProperty
может использоваться в компонентах JavaBeans для предоставления дополнительной информации о конфигурации, которая может использоваться поставщиком развёртывания и адаптером ресурсов. Код предыдущего примера показывает несколько аннотаций @ConfigProperty
.
-
Аннотация @ConnectionFactoryDefinition
является аннотацией определения ресурса, которая используется для определения фабрики соединений коннектора и регистрации её в JNDI под именем, указанным в обязательном элементе name
аннотации. Обязательный элемент interfaceName
аннотации указывает полное имя класса интерфейса фабрики соединений. Элемент аннотации @TransactionsSupport
указывает уровень поддержки транзакций, который должна поддерживать фабрика соединений. Элементы minPoolSize
и maxPoolSize
аннотации определяют минимальное или максимальное количество соединений, которые должны быть выделены для пула соединений, поддерживающего этот ресурс фабрики соединений. Дополнительные свойства, связанные с определяемой фабрикой соединений, можно указать с помощью элемента properties
.
Поскольку повторы аннотаций недопустимы, аннотация @ConnectionFactoryDefinitions
действует как контейнер для определений фабрики соединений с несколькими коннекторами. Элемент аннотации value
содержит определения фабрики соединений с несколькими коннекторами.
-
Аннотация @AdministeredObjectDefinition
является аннотацией определения ресурса, которая используется для определения администрируемого объекта и регистрации его в JNDI под именем, указанным в обязательном элементе name
аннотации. Обязательное полное имя класса администрируемого объекта должно указываться элементом className
. Дополнительные свойства, которые необходимо настроить в администрируемом объекте, можно указать с помощью элемента properties
.
Поскольку повторы аннотаций недопустимы, аннотация @AdministeredObjectDefinitions
действует как контейнер для нескольких определений администрируемых объектов. Элемент аннотации value
содержит несколько определений администрируемых объектов.
Спецификация позволяет разрабатывать адаптер ресурсов в смешанном режиме, то есть разработчик имеет возможность использовать для адаптера ресурса как аннотации, так и дескрипторы развёртывания в приложениях. Установщик приложения может использовать дескриптор развёртывания для переопределения аннотаций, указанных разработчиком адаптера ресурса.
Дескриптор развёртывания для адаптера ресурса, если он есть, называется ra.xml
. Атрибут metadata-complete
определяет, завершён ли дескриптор развёртывания для модуля адаптера ресурсов и нужно ли проверять файлы классов, доступные для модуля и упакованные с адаптером ресурсов, на наличие аннотаций, в которых указана информация о развёртывании.
Полный список аннотаций и компонентов JavaBeans, представленных в платформе Java EE, см. в спецификации Java EE Connector Architecture 1.7.