Java极速框架JFinal--如何定义全局的变量?

鱼中鱼 发布于 2012/07/20 14:40
阅读 1K+
收藏 4
-如何定义全局的变量?
类似servlet 中的init方法,我可以先初始化一些会用到的变量
比如:InitialContext ctx = new InitialContext(props);
只需要初始化一次,多次使用。

能不能加在config中,在初始化应用的时候,就初始化掉。
如果可以,那么在controller中,能不能调用到?怎么用呢?

加载中
1
JFinal
JFinal

直接上代码:

public class YourJFinalConfig extends JFinalConfig {
  public static String email_server;
  public static String email_user_name;
  public static String email_password;
  public static String email_acceptor;
  
  public void configConstant(Constants me) throw{
    Properties props = loadPropertyFile("my_context_config.txt");
    InitialContext ctx = new InitialContext(props); 
    loadPropertyFile("a_little_config.txt");
    me.setDevMode(getPropertyToBoolean("devMode"));
    
    email_server = getProperty("email_server");
    email_user_name = getProperty("email_user_name");
    email_password = getProperty("email_password");
  }
  // other code
}

    在controller 中这么使用:

public class MyController extends Controller {
  public void index() {
    String email_user_name = YourJFinalConfig.email_user_name;
    String email_password = YourJFinalConfig.email_password;
    // ....
  }
}

    YourJFinalConfig 中定义了 public static 属性是从属性文件中得到的,可以在系统的其它地方使用,如果不想使用 public static,可以使用 getter 方法来做。此例中 loadPropertyFile 方法被调用了两次,第一次加载得到一个 Properties 对象供 InitialContext使用,后面的一次调用供后面的 getPorperty系列方法来用。

JFinal
JFinal
回复 @鱼中鱼 : 谢谢关注,多来反馈哈 :)
鱼中鱼
鱼中鱼
非常详细的解答,谢谢。
0
lcccd
lcccd
多谢,受教了!
返回顶部
顶部