Note: These annotations will likle change package names to something
other than javax.ejb as J2EE 1.5 drafts progress.
Session beans may be configured using dependency injection annotation.
@EJB
Configures an EJB values for a field or method.
@EJB is essentially a @Resource where it's known that the
result is an EJB interface.
Attribute | Meaning | default |
jndiName | The jndi name of the resource | The field name
|
In the following exaple, Resin will call setFoo
method with the bean in "java:comp/env/ejb/foo" before the
session is started.
@EJB
void setFoo(example.Test test)
{
_test = test;
}
|
javax.ejb.EJB
@Target({TYPE, METHOD, FIELD, PARAMETER})
@Retention(RUNTIME)
public @interface EJB {
String name() default "";
String businessInterface() default "";
String jndiName() default "";
}
|
@Inject
Configures a JNDI values for a field or method.
Inject relies heavily on defaults from the field or method name
and type. If more information is required, use @Resource, @EJB, or @EJBHome.
Attribute | Meaning | default |
jndiName | The jndi name of the resource | The field name
|
In the following exaple, Resin will call setDataSource
method with the data source in "java:comp/env/jdbc/test" before the
session is started.
@Inject(jndi-name="java:comp/env/jdbc/test")
void setDataSource(javax.sql.DataSource dataSource)
{
_dataSource = dataSource;
}
|
javax.ejb.Inject
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Inject {
String jndiName() default "";
}
|
@Resource
Configures a JNDI values for a field or method. @Resource
is essentially the same as @Inject but provides more configurable
options. @Resource can also be used at the Class level to
declare a dependency in cases where the session bean loads the
JNDI value by itself.
Attribute | Meaning | default |
name | The name of the resource | The field name
|
resourceType | The resource typed | The field type
|
authenticationType | Whether the container or the application is responsible for authentication | CONTAINER
|
shareable | True if the bean follows JCA shareability requirements. | true
|
jndiName | The jndi name of the resource | The field name
|
In the following exaple, Resin will call setDataSource
method with the data source in "java:comp/env/jdbc/test" before the
session is started. The "java:comp/env/jdbc" full name
is inferred from the DataSource type.
default JNDI names
javax.sql.DataSource | java:comp/env/jdbc
|
javax.mail.* | java:comp/env/mail
|
javax.ejb.EntityManager | java:comp/EntityManager
|
javax.transaction.UserTransaction | java:comp/UserTransaction
|
javax.ejb.EJBHome | java:comp/env/ejb
|
javax.jms.* | java:comp/env/jms
|
@Resource(name="test")
void setDataSource(javax.sql.DataSource dataSource)
{
_dataSource = dataSource;
}
|
javax.ejb.Resource
@Target({TYPE, METHOD, FIELD, PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Resource {
String name() default "";
String resourceType() default "";
AuthenticationType authenticationType() CONTAINER;
boolean shareable() default true;
String jndiName() default "";
}
|
Copyright © 1998-2005 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark,
and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc. | |
|