#jfinal-ext-scan
该项目提供一个自动扫描controller的routes和一个自动扫描model的插件.
##使用说明:
### AutoBindRoutes:自动绑定路由插件
使用方法:在配置类中绑定,并在要扫描的的controller中添加注解
public class MyConfig extends JFinalConfig { ... @Override public void configRoute(Routes routes) { //扫描的包为com,baseViewPath为pages routes.add(new AutoBindRoutes("com","pages")); } ... }
@JAction("/a") public class AController extends Controller { }
@JAction(value = "/b",viewPath = "bView") public class BController extends Controller { }
//上述代码相当于做了以下操作: routes.setBaseViewPath("pages"); routes.add("/a", AController.class); routes.add("/b", BController.class,"bView");
### ScanTablePluigin:自动扫描数据库表插件
**使用方法:在配置类中添加注解,并在要扫描的model上添加注解**
public class MyConfig extends JFinalConfig { ... @Override public void configPlugin(Plugins plugins) { //连接池插件 DruidPlugin dp = new DruidPlugin(PropKit.get("mysql.url"), PropKit.get("mysql.userName"), PropKit.get("mysql.password")); plugins.add(dp); //db操作插件 ActiveRecordPlugin arp = new ActiveRecordPlugin(dp); arp.setShowSql(PropKit.getBoolean("mysql.showSql")); //扫描映射关系 默认的dbName为default-db //该插件需要在arp插件添加之前,否则扫描不到model ScanTablePluigin scanTablePluigin = new ScanTablePluigin(arp, "com"); plugins.add(scanTablePluigin); //最后添加arp插件 plugins.add(arp); } ... }
//默认"id"为主键 @JTable(tableName = "indexnav") public class IndexNav extends Model<IndexNav> { }
//以id1,id2两个字段为组合主键 @JTable(tableName = "user",id = "id1,id2") public class User extends Model<User> { }
//上述代码相当于做了以下操作: arp.addMapping("indexnav", IndexNav.class); arp.addMapping("user","id1,id2", User.class);
##安装说明:
1. 下载源码后导入为maven项目
2. 执行maven命令install,获取的jar包
3. 放入jfinal项目使用
项目:jfinal注解扫描
此外,routes 自 3.0 开始,可以配置 routes.setBaseViewPath(...),楼主的扫描功能是否可以支持这个功能