File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Java in General and the fly likes Where to store constants? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Where to store constants?" Watch "Where to store constants?" New topic
Author

Where to store constants?

Anjana Ravindran
Ranch Hand

Joined: Aug 22, 2005
Posts: 76
I really doubt where to store the constants according to a good programming design.

Situation
----------
Here is my situation. i have an email address and my application has an email functionality to send out the email using this email address.

Right now, this email address is used in only one place.

1. Can i store this email address in the code file where i am using?
2. Can i have one common code file to have all the constants used by the application?
3. Can i have a table called 'key_values' table which will store values in an array list format
eg: Key Value
-------------------------------
email_addr myname@mycomp.com
sender_role admin,user,guest

please let me know which option would be good.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42264
    
  64
While the three options you mention are all possibilities, for configuration options that rarely (if ever) change -like email addresses- I'd use a properties file, and make its contents available to all classes of an application. That could happen either through a static method in some class, or through a config object that each class has access to.


Ping & DNS - my free Android networking tools app
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30751
    
156

This forum is for "operating systems, applications, hardware, drivers, features, etc. General computer use stuff." I'm going to move it to one of our coding forums for you.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Nicholas Jordan
Ranch Hand

Joined: Sep 17, 2006
Posts: 1282
Like Ulf Dittmer states, best practice is to store these in a properties file for the stated scenario. They can as well be written in the sources, but that leads to snarled situations if the project becomes commercially scaled, use this on for prototyping.


  • 1. Can i store this email address in the code file where i am using? Yes for protoyping only.
  • 2. Can i have one common code file to have all the constants used by the application?

  • That is a properties file.
  • 3. Can i have a table called 'key_values' table which will store

  • Yes, but where do you store the <K,V> between invocations of the program ?

    values in an array list formatting:
    Key Value


    That is a Map, not a List.
    [ February 03, 2008: Message edited by: Nicholas Jordan ]

    "The differential equations that describe dynamic interactions of power generators are similar to that of the gravitational interplay among celestial bodies, which is chaotic in nature."
    Pat Farrell
    Rancher

    Joined: Aug 11, 2007
    Posts: 4659
        
        5

    as others have said, for small scale, protoypes, etc. it doesn't matter.

    Once you get serious, the usual pattern is to put serious constants in a property file. When (not if) you find you have lots of properties,
    you put the real properties in a database table in a suitable database, and put the pointers to the database (i.e. the database, connection url, etc.) in a properties file.

    Read the properties, find the database, use JDBC to talk to it, get the real values.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: Where to store constants?