Vous êtes sur la page 1sur 2

Java EE 6 Annotations

Alternatives for EJB management CDI JSF EJB3 CDI: javax.inject


CMF @Inject @Named(value=) T T T TM TM T T T T T T T

TM

@Interceptors(Class[]) @AroundInvoke @AroundTimeout @ExcludeDefaultInterceptors @ExcludeClassInterceptors

Bean Types: javax.ejb


@Stateless(name=className) @Stateful(name=className) @Singleton(name=className) @MessageDriven(name=, activationConfig=ActivationConfigProperty[]) @ActivationConfigProperty(propertyName=, propertyValue=) @Local(value=Class[]) @Remote(value=Class[]) @LocalBean @Asynchronous @Lock(value=[WRITE,READ]) @ConcurrencyManagement(value=[CONTAINER, BEAN]) @DependsOn(value=String[]) @Startup

M M TM M

Security: javax.annotation.security
T T TM TM TM @RunAs(String rolename) @DeclareRoles(value=String[]) @RolesAllowed(value=String[]) @PermitAll @DenyAll src/java/ [potentially packaged as a .jar inside a .ear] |-- META-INF/ | |- - beans.xml [or in WEB-INF/] | `-- persistence.xml `-- com/ `-- myBusiness/ |-- entities/ | `-- Entities.java |-- resources/ | |-- validationMessages.properties | `-- messages.properties `-- EJBs.java web/ [potentially packaged as a .war inside a .ear] |-- WEB-INF/ | |-- beans.xml [or in META-INF/] | |-- faces-config.xml | `-- web.xml |-- resources/ | |-- css/ | | `-- standard.css | `-- javascript/ | `-- standard.js `-- jsfpages.xhtml

CDI: javax.enterprise.inject
TMF TMF TMF MF @New(value=className) @Alternative @Any @Produces

CDI: javax.enterprise.context
TMF TMF TMF TMF TMF @ApplicationScoped @ConversationScoped @RequestScoped @SessionScoped @Dependent

Timeouts: javax.ejb
TM T M M @AccessTimeout(value=0,unit=MILLISECONDS) @StatefulTimeout(value=0,unit=MILLISECONDS) @Timeout @Schedule(year=*, month=*, bimonthly=*, dayOfWeek=*, hour=0, minute=0, info=, persistent=true, timezone=) @Schedules(Schedule[])

JSF management: javax.faces.bean


T F T T T T T T T @ManagedBean(name=, eager=false) @ManagedProperty(name=, value=) @ApplicationScoped @CustomScoped(value=) @NoneScoped @ReferencedBean(name=) @RequestScoped @SessionScoped @ViewScoped

Transaction: javax.ejb
T TM @TransactionManagement( value=[CONTAINER, BEAN]) @TransactionAttribute(value=[MANDATORY, REQUIRED, REQUIRES_NEW, SUPPORTS, NOT_SUPPORTED, NEVER])

EJB3 injection: javax.ejb


TMF @EJB(name=, beanInterface=Object.class, mappedName=, lookup=| beanName=, description=) @EJBs(EJB[])

EJB Callbacks: javax.ejb and .annotation


M M M M M M M M @AfterBegin @AfterCompletion @BeforeCompletion @PostConstruct @PreDestroy @PostActivate @PrePassivate @Remove(retainIfException=false)

Legend
TCMF Annotation applies to Type, Constructor, Method, Field
VALUE Default Value

Java EE 6 Annotations Cheat Sheet


Version 1.3, based on Java EE 6 API Doc 2005,2011 Philipp Meier www.fnogol.de 2011 Updated for EJB 3.1, JSF 2.0, JPA 2.0 by Chris Rennie Report errors to c.rennie@physics.usyd.edu.au
This work is licensed under the Creative Commons AttributionNonCommercial-ShareAlike 2.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/de/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

EJB3 injection: javax.annotation


T TMF @ManagedBean(value=) @Resource(name=, type=Object.class, AuthenticationType=[CONTAINER,Application], shareable=true, lookup=, mappedName=) @Resources(Resource[])

Interceptors: javax.interceptor
T @Interceptor

Persistence provider: javax.persistence


TMF @PersistenceContext(name=, unitName=,type= [TRANSACTION,EXTENDED], properties=PersistenceProperty[]) @PersistenceContexts(PersistenceContext[]) @PersistenceUnit(name=, unitName=) @PersistenceUnits(PersistenceUnit[]) @PersistenceProperty(name=, value=) T @Cacheable(value=true)

MF MF

@Lob @Version

@MappedSuperclass

Generators: javax.persistence
MF TMF @GeneratedValue(generator=, strategy=[AUTO,IDENTITY,SEQUENCE,TABLE]) @SequenceGenerator(name=, schema=, catalog=, sequenceName=, initialValue=0, allocationSize=50) @TableGenerator(name=, table=, schema=, catalog=, pkColumnName=, valueColumnName=, pkColumnValue=, initialValue=0 allocationSize=50, uniqueConstraints={})

Embedded values: javax.persistence


T MF MF MF @Embeddable @EmbeddedId @Embedded @MapsId(value=)

T TMF T

TMF

Relations: javax.persistence
MF @OneToOne(targetEntity=void.class, cascade={ALL,DETACH,MERGE,PERSIST,REFRESH, REMOVE}, fetch=[LAZY, EAGER], optional=true, mappedBy=, orphanRemoval=false) @OneToMany(targetEntity=void.class , cascade={...}, fetch=[...], mappedBy=, orphanRemoval=false) @ManyToOne(targetEntity=void.class, cascade={...}, fetch=[...], optional=true) @ManyToMany(targetEntity=void.class, cascade={...}, fetch=[...], mappedBy=) @OrderBy(value=) @OrderColumn(name=, columnDefinition=, insertable=true, updateable=true, nullable=true) MF MF MF

Object-relational mapping: javax.persistence


T T T @Entity(name=) @Table(name=, schema=, catalog=, UniqueConstraints=UniqueConstraint[]) @SecondaryTable(name=, schema=, catalog=, pkJoinColumns=PrimaryKeyJoinColumn[], uniqueConstraints=UniqueConstraint[]) @SecondaryTables(SecondaryTable[]) @UniqueConstraint(columnNames=String[], name=) T TMF TMF TMF TMF TMF MF @IdClass(Class) @Access(value=[FIELD,PROPERTY]) @PrimaryKeyJoinColumn(name=, columnDefinition=, referencedColumnName=) @PrimaryKeyJoinColumns(PrimaryKeyJoinColumn[]) @AttributeOverride(name=String, column=Column) @AssociationOverride(name=String, joinTable=JoinTable, JoinColumns=JoinColumn[]) @Column(name=, table=, unique=false, nullable=true, insertable=true, updatable=true, columnDefinition=, length=255, precision=0, scale=0) @JoinColumn(name=, table=, referencedColumnName=, unique=false, nullable=true, insertable=true, updatable=true, columnDefinition=) @JoinColumns(JoinColumn[]) @JoinTable(name=, schema=, catalog=, joinColumns={}, inverseJoinColumns={}, uniqueConstraints=UniqueConstraint[]) @CollectionTable(name=, schema=, catalog=, joinColumns={}, uniqueConstraints={}) @ElementCollection(targetClass=void.class, fetch=[LAZY,EAGER]) @Id @Basic(fetch=[LAZY, EAGER], optional=true) @Enumerated(EnumType) @Temporal([DATE, TIME, TIMESTAMP]) @Transient

MapKey: javax.persistence
@MapKey(value=) @MapKeyClass(value=Class) @MapKeyColumn(name=, table=, unique=false, nullable=true, insertable=true, updatable=true, columnDefinition=, length=255, precision=0, scale=0) @MapKeyEnumerated(value=[ORDINAL,STRING]) @MapKeyJoinColumn(name=, table=, referencedColumnName=, unique=false, nullable=true, insertable=true, updatable=true, columnDefinition=) @MapKeyJoinColumns(MapKeyJoinColumn[]) @MapKeyTemporal([DATE,TIME,TIMESTAMP])

MF

MF MF MF MF

MF MF

Queries: javax.persistence
T T T T @NamedQuery(name=String, query=String) @NamedQueries(NamedQuery[]) @NamedNativeQuery(name=String, query=String, resultClass=void.class) @NamedNativeQueries(NamedQuery[]) @QueryHint(name=, value=)

MF MF

JPA Callbacks: javax.persistence


M M M M M M M @PostLoad @PrePersist @PostPersist @PreRemove @PostRemove @PreUpdate @PostUpdate

MF

ResultSet mapping: javax.persistence


T T @SqlResultSetMapping(name=String, entities=EntityResult[], columns=ColumnResult[]) @SqlResultSetMappings(SqlResultSetMapping[]) @EntityResult(entityResult=Class, disriminatorColumn=, fields=FieldResult[]) @FieldResult(name=, column=) @ColumnResult(name=)

MF MF

Listeners: javax.persistence
T T T @EntityListeners(Class[]) @ExcludeDefaultListeners @ExcludeSuperclassListeners

MF MF MF MF MF MF MF

Inheritance: javax.persistence
T T @Inheritance(strategy=[SINGLE_TABLE, TABLE_PER_CLASS, JOINED]) @DiscriminatorColumn(name=DTYPE, discriminatorType=[STRING,CHAR,INTEGER], columnDefinition=, length=31) @DiscriminatorValue(value=) JSF JPA CDI

See also:
http://horstmann.com/corejsf/refcard.html http://www.oracle.com/technetwork/middleware/ias/top link-jpa-annotations-096251.html http://www.theserverside.com/news/1373391/Depende ncy-Injection-in-Java-EE-6-Part-1

Vous aimerez peut-être aussi