JFinal

登录 注册
  • @杜福忠 那这样看来 不是我太笨了,是文档读的不够多 哈哈哈
    01-04 13:57 回复
  • @杜福忠 还好你说文档是读七八遍,而不是读一遍。。。
    01-04 13:37 回复
  • @杜福忠 好滴 明白了 感谢大佬
    01-04 10:32 回复
  • @杜福忠 好 谢谢。那另外有个疑问

    jfinal框架去启动插件的方法是在com.jfinal.core包的config类中吗?


    private static void configPluginWithOrder(int order, JFinalConfig jfinalConfig) {
    if (order == constants.getConfigPluginOrder()) {
    jfinalConfig.configPlugin(plugins);
    startPlugins(); // very important!!!
    }
    }

    private static void startPlugins() { //这里是启动插件的吧
    List pluginList = plugins.getPluginList();
    if (pluginList == null) {
    return ;
    }
    for (IPlugin plugin : pluginList) {
    try {
    // process ActiveRecordPlugin devMode
    if (plugin instanceof com.jfinal.plugin.activerecord.ActiveRecordPlugin) {
    com.jfinal.plugin.activerecord.ActiveRecordPlugin arp = (com.jfinal.plugin.activerecord.ActiveRecordPlugin)plugin;
    if (arp.getDevMode() == null) {
    arp.setDevMode(constants.getDevMode()); //但是这里不是只是设置了一下每个插件的setDevMode吗?并没用去调start()方法呀
    }
    }

    if (plugin.start() == false) {
    String message = "Plugin start error: " + plugin.getClass().getName();
    log.error(message);
    throw new RuntimeException(message);
    }
    }
    catch (Exception e) {
    String message = "Plugin start error: " + plugin.getClass().getName() + ". \n" + e.getMessage();
    log.error(message, e);
    throw new RuntimeException(message, e);
    }
    }
    }
    01-03 21:18 回复
  • @杜福忠
    是不是在configPlugin(Plugins plugins) 中plugins.add(activeRecordPlugin),在configPlugin执行完后,jfinal框架去调用activeRecordPlugin中的start()方法,由于
    activeRecordPlugin的start()中有
    public boolean start() {
    if (isStarted) {
    return true;
    }
    所以我如果在configPlugin(Plugins plugins) 中手动.start() ,也不会重复启动
    是这样吗?
    01-03 20:31 回复
  • @杜福忠 jfinal中com.jfinal.core包的config类这里有判断只启动一次吗?
    private static void startPlugins() {
    List pluginList = plugins.getPluginList();
    if (pluginList == null) {
    return ;
    }

    for (IPlugin plugin : pluginList) {
    try {
    // process ActiveRecordPlugin devMode
    if (plugin instanceof com.jfinal.plugin.activerecord.ActiveRecordPlugin) {
    com.jfinal.plugin.activerecord.ActiveRecordPlugin arp = (com.jfinal.plugin.activerecord.ActiveRecordPlugin)plugin;
    if (arp.getDevMode() == null) {
    arp.setDevMode(constants.getDevMode());
    }
    }

    if (plugin.start() == false) {
    String message = "Plugin start error: " + plugin.getClass().getName();
    log.error(message);
    throw new RuntimeException(message);
    }
    }
    catch (Exception e) {
    String message = "Plugin start error: " + plugin.getClass().getName() + ". \n" + e.getMessage();
    log.error(message, e);
    throw new RuntimeException(message, e);
    }
    }
    }
    01-03 19:49 回复
  • @杜福忠 因为在configPlugin(Plugins me)中配置需要添加 dp.start(); 但是相当于重复启动,因为configPlugin(Plugins me)最后还是会去执行dp.start(),所以就觉得还是等系统自己启动完 再去加载,在afterJFinalStart 去读取数据库 使用Model.dao.方法();
    01-03 13:00 回复
  • @杜福忠 数据库查询的是list集合,那是不是在这个Model中 定义一个存放这个Model的list集合?
    12-29 17:22 回复
  • @杜福忠 请教另外一个问题 现在可以启动就能获得到数据库的数据了,但是如果将这些数据赋值给一个自定义的枚举类?这样其他使用这个枚举类的都能获得这些数据?自定义枚举类:public enum Color {

    YELLO("黄色", 4);//这里其实不应该有值,这里的值是项目启动时 从数据库读取出来的


    private String name ;
    private int index ;

    private Color( String name , int index ){
    this.name = name ;
    this.index = index ;
    }

    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getIndex() {
    return index;
    }
    public void setIndex(int index) {
    this.index = index;
    }


    }
    12-29 13:15 回复