[jboss-user] [JBoss Seam] - best way of using application scope constants?

enzhao do-not-reply at jboss.com
Wed Jun 27 11:39:30 EDT 2007


In my application there are a lot of application scope values (read most, very seldom update/insert/delete), things like all Zip Codes in a country, names of all agents, etc. They resides in various different tables in the database. I want to _always_ cache them in the memory, once and for all, so that other stateful beans can use these values without creating new instances of these data wrapper class. For example, 


  | @Stateful
  | @Name("fooAction")
  | @Scope(CONVERSATION)
  | public class FooAction implements Serializable, Foo{
  | 
  |   //here i want to load the in-memory data like all zipcodes....
  |   private SomeBean applicationScopeValues;
  |   .....
  | 
  | }
  | 
  | 

What is the best way?

If I use bijection, I would need to create a stateful bean (or stateless, if the data is 100% read-only), annotate the application scope, and then in this bean, do things like:


  | 
  | @Stateful
  | @Scope(APPLICATION)
  | @Name("dataStore")
  | public class DataStoreImpl implements Serializable, DataStore{
  | 
  |   //how do I get reference of this list from other action beans if I use
  |   // use the @Out here?
  |   private List<Zipcode> allZipcodes; 
  | 
  |   @Create
  |   public void findAllZipcodes(){
  |     String query ="select z from Zipcode z";
  |     this.allZipcodes = entityManager.createQuery(query).getResultList();
  |   }
  | 
  |   //getters and setters
  | }
  | 
  | 

Then in the FooAction class, I would need to do:

  | @In(create=true) private DataStore dataStore;
  | 

Am I doing right this way? Can I avoid creating multiple instances of the DataStore this way? 

Any better options? Thanks very much in advance!!


Regards,
Ellen

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058257#4058257

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058257



More information about the jboss-user mailing list