jfinal 2.2 调用顺序
3.3调用顺序。
请教下为什么会做出这种调整呢 因为有些插件是依赖路由的
解决方案:
小可的需求是更具plugin获取到路由对象
在plugin中创建routes对象
并且开放get方法
在config中调用get方法获取路由对象(注:这会儿还是空的路由只是添加个引用,这里有值对象和引用对象需要有点概念)
由于是引用所以在这里routes是已经有值的了
如果需求与小可相反是插件依赖于routes 也可以使用小可自己写的这个插件控制反转 使用实例(这里有分支master是3.1以下版本。3.3则是针对调整的修改。注:启动顺序反转先启动)
如果不使用可以使用中间方法去初始化路由例:
private Routes routes = new Routes(){ public void config() { } }; private Routes getRoutes(){ routes.add(xxxx,xxxx,xxx); } @Override public void configPlugin(Plugins plugins) { routes = getRoutes(); xxPlugin plugin = new xxPlugin(routes); } @Override public void configRoute(Routes routes) { routes.add(this.routes); }
没有料到居然有这个次序有敏感的情况存在,你那的场景是什么? 我这里急切需要得到应用场景,可以更好去改进 jfinal 3.4