EJB - is a managed, server-side component architecture for modular construction of enterprise applications. Simply EJB provide instrument to write business layer(logic) of your application.
There are three most used types of java beans:
1)Session Beans
2)Mesage-drivien Beans
3)Entities
1)Session Beans
There are three types of session beans: Stateful, Stateless and Singleton (till EJB 3.1). For Stateless and Stateful beans need to provide interfaces: remote and local. Remote beans are accessed via a network call and local beans are accessed within the same JVM.
Stateless - do not maintain states ex. charging credit card ; checking credit history
How to call:
Stateful - saves bean state between client invocations ex. shopping cart on online shops.
Singleton - is a session bean with a guarantee that there is at most one instance in the application ex. loading common values for several objects till EJB 3.1
2)Mesage-drivien Bean
-are business objects whose execution is triggered by messages instead of by method calls.( are stateless,server-side, transaction-aware components, for processing asynchronous JMS messages.)
How to call:
3)Entities
- represents persistent data maintained in a database.In EJB 3.0, Entity Beans were replaced by the Java Persistence API.
References:
The Java EE 6 Tutorial - Enterprise Beans
JBoss AS 5 Development
There are three most used types of java beans:
1)Session Beans
2)Mesage-drivien Beans
3)Entities
1)Session Beans
There are three types of session beans: Stateful, Stateless and Singleton (till EJB 3.1). For Stateless and Stateful beans need to provide interfaces: remote and local. Remote beans are accessed via a network call and local beans are accessed within the same JVM.
Stateless - do not maintain states ex. charging credit card ; checking credit history
@Local public interface StoreManagerLocal extends StoreManager { public List<Customer> findAllCustomers(); } @Remote public interface StoreManagerRemote extends StoreManager { public List<Customer> findAllCustomers(); } @Stateless @RemoteBinding(jndiBinding="AppStoreEJB/remote") @LocalBinding(jndiBinding="AppStoreEJB/local") public class StoreManagerBean implements StoreManagerLocal,StoreManagerRemote { @PersistenceContext(unitName="MyStore") private EntityManager em; @Override public List<Customer> findAllCustomers() { Query query = em.createQuery("FROM Customer"); List<Customer> customerList = query.getResultList(); return customerList; } }
How to call:
public class Tester extends HttpServlet { private static final long serialVersionUID = 1L; @EJB(mappedName = "AppStoreEJB/local") private StoreManager storeManager; //.... }
Stateful - saves bean state between client invocations ex. shopping cart on online shops.
@Stateful public class ShoppingCart implements ShoppingCartLocal,ShoppingCartRemote { //... }
Singleton - is a session bean with a guarantee that there is at most one instance in the application ex. loading common values for several objects till EJB 3.1
@Startup @Singleton public class StatusBean { private String status; @PostConstruct void init { status = "Ready"; } //... }
2)Mesage-drivien Bean
-are business objects whose execution is triggered by messages instead of by method calls.( are stateless,server-side, transaction-aware components, for processing asynchronous JMS messages.)
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/exampleQueue") }) public class MessageConsumer implements MessageListener { @Resource(mappedName = "java:/MySqlDS") private DataSource datasource; @Override public void onMessage(Message msg) { if (msg instanceof TextMessage) { TextMessage tmsg = (TextMessage) msg; logger.info("MESSAGE BEAN: Message received: " + tmsg.getText()); } }
How to call:
public static void main(String[] args) throws Exception { String destinationName = "queue/exampleQueue"; Context ic = null; ConnectionFactory cf = null; Connection connection = null; // need try, catch and close context ic = getInitialContext(); cf = (ConnectionFactory)ic.lookup("/ConnectionFactory"); Queue queue = (Queue)ic.lookup(destinationName); connection = cf.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer sender = session.createProducer(queue); TextMessage message = session.createTextMessage("Frank"); sender.send(message); ic.close(); }
3)Entities
- represents persistent data maintained in a database.In EJB 3.0, Entity Beans were replaced by the Java Persistence API.
@Entity @Table(name="customer") public class Customer implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="ID") private int id; @Column(name="COUNTRY") private String country; //... }More details abouth Entities relationships in the next post.
References:
The Java EE 6 Tutorial - Enterprise Beans
JBoss AS 5 Development
very useful..
ReplyDeletethanks for giving good coding very useful for me :)
ReplyDeletegreat
ReplyDeleteThank You and that i have a super give: Whole House Remodel Cost house cleaning after renovation
ReplyDelete