jfinal注解扫描 bean和controller

#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项目使用


项目地址(点此查看)