【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
这样强制零配置对于插件的开发会有一些影响啊,如果JFinal有一个properties文件,就可以简单地传递到start(Properties)方法中,这样插件就可以读取自己的配置了。现在插件在start方法中没有办法获取自己的配置。
建议还是加上简单的配置机制,即便JFinal自己不用,插件开发者也有一个机会让用户配置。
如你所言, JFinal 一直就是这么做的。 只不过配置不在start()方法上,而是单独的loadPropertyFile(),这样就可以在任何地方加载多个配置了。JFinal 提倡合理的约定优于配置,但也是可以配置的,因为有些配置是有必要的,例如,数据库连接用户名密码等等。
可以通过 JFinal demo 这个例子看到 JFinal 关于配置的处理。
在应用程序中怎么做都好。不过插件开发有点不太一样。比方说我要做一个生产PDF的插件,依赖于三方库,而那个依赖库需要使用某些配置文件。这个时候如果jfinal能传送配置到插件的话,就很方便了。
loadPropertyFile接口定义在JFinalConfig上面,应用程序可以很容易使用,但是这个要求应用load配置了之后再调用插件的API去配置插件。这样一来,距离JFinal的零配置目标反而更远了。
虽然 IPlugin.start()方法中没有提供参数,但可以通过在插件构造方法中传递参数达到目的,com.jfinal.plugin.c3p0.C3p0Plugin(Properties properties) 展示了这种用法,JFinal自带的一些插件都是利用构造方法重载来传递不同的初始化参数。
而如果通过IPlugin.start()来提供参数,就会失去灵活性,因为参数的类型与个数都是不确定的,例如有时候参数可能为Properties,而有时可能为int abc, String def, Date xyz。
这样强制零配置对于插件的开发会有一些影响啊,如果JFinal有一个properties文件,就可以简单地传递到start(Properties)方法中,这样插件就可以读取自己的配置了。现在插件在start方法中没有办法获取自己的配置。
建议还是加上简单的配置机制,即便JFinal自己不用,插件开发者也有一个机会让用户配置。
引用来自“罗格林”的答案
这样强制零配置对于插件的开发会有一些影响啊,如果JFinal有一个properties文件,就可以简单地传递到start(Properties)方法中,这样插件就可以读取自己的配置了。现在插件在start方法中没有办法获取自己的配置。
建议还是加上简单的配置机制,即便JFinal自己不用,插件开发者也有一个机会让用户配置。
如你所言, JFinal 一直就是这么做的。 只不过配置不在start()方法上,而是单独的loadPropertyFile(),这样就可以在任何地方加载多个配置了。JFinal 提倡合理的约定优于配置,但也是可以配置的,因为有些配置是有必要的,例如,数据库连接用户名密码等等。
可以通过 JFinal demo 这个例子看到 JFinal 关于配置的处理。
引用来自“罗格林”的答案
在应用程序中怎么做都好。不过插件开发有点不太一样。比方说我要做一个生产PDF的插件,依赖于三方库,而那个依赖库需要使用某些配置文件。这个时候如果jfinal能传送配置到插件的话,就很方便了。
loadPropertyFile接口定义在JFinalConfig上面,应用程序可以很容易使用,但是这个要求应用load配置了之后再调用插件的API去配置插件。这样一来,距离JFinal的零配置目标反而更远了。
虽然 IPlugin.start()方法中没有提供参数,但可以通过在插件构造方法中传递参数达到目的,com.jfinal.plugin.c3p0.C3p0Plugin(Properties properties) 展示了这种用法,JFinal自带的一些插件都是利用构造方法重载来传递不同的初始化参数。
而如果通过IPlugin.start()来提供参数,就会失去灵活性,因为参数的类型与个数都是不确定的,例如有时候参数可能为Properties,而有时可能为int abc, String def, Date xyz。