JavaEE
JavaEE Compatibility
Java EE server = Web Container + EJB Container
JavaEE 7
JavaEE6
Require asynchronous processing, loose-coupling, and reliability: MDB
Require only asynchronous processing: @Asynchronous
Require only loose-coupling: CDI event
Spring
public class MySpringDAO extends HibernateDaoSupport implements BaseDAO {
public Ticket save(Ticket ticket) {
getHibernateTemplate().saveOrUpdate(ticket);
return ticket;
}
}
★マルチスレッド環境
Java EE
@Stateless
public class MyEJBDAO implements BaseDAO {
@PersistenceContext(unitName = "dbUnit")
private EntityManager em;
public Ticket save(Ticket ticket) {
em.persist(ticket);
return ticket;
}
}
★CDI vs EJB
EJB 3.1 features:
・EJB >= CDI EJBs are CDI beans, so have all the benefits of CDI
・Monitoring All EJBs are exposed via JMX, so can be monitored with JConsole
・The @Singleton bean is essentially @ApplicationScoped
・The @TransactionAttribute annotation is available to EJB only
★Deploy後のディレクトリ
〇WEB_INF
/web.xml
/classes/ *.classと設定ファイル
/lib/ *.jar
/src/ *.java
/database.properties
/tags/ タグファイル
/jsp/ *.jsp
〇META_INF 一般的にはビルド中に自動生成
//Client inside a container
@EJB
MyService myService;
//Client outside a container
Context ctx = new InitialContext();
MyService myService = (MyService) ctx.lookup("java:global/MyService");
※他サイト参照