JFinal注解配置路由

1、只需要在你原来的项目添加如下的代码文件,就可像spring那样配置路由了:

blob.png

2、在jfinal的配置路由代码:

/**
 * 配置JFinal路由映射
 */
 @Override
 public void configRoute(Routes me) {
    // 配置ControllerBind注解路由
    AutoBindRoutes autoBindRoutes = new AutoBindRoutes();
    autoBindRoutes.setBaseViewPath("/WEB-INF/views");
    //是否扫描lib目录下的jar包
    //autoBindRoutes.includeAllJarsInLib(!p.getBoolean("devMode"));
    //扫描指定package
    //autoBindRoutes.setPackageName("com.qinhailin")
    me.add(autoBindRoutes);
}

3、在controller添加注解@ControllerBind(path="/")即可:

/**
 * 系统首页
 * 
 */
@ControllerBind(path="/")
public class IndexController extends Controller {

	public void index() {
	    render("index.html");
        }
}


4、重要提示:用这个注解的方式绑定路由,在打jar包部署时,需要将源码的jar包复制一份到项目的webapp/WEB-INF/lib目录中,同时 开启扫描lib目录下的jar配置:

autoBindRoutes.includeAllJarsInLib(true)

,否则访问路由会出现404.

可以在package.xml配置自动复制源码到lib目录:

<!-- 将jfinal-layui.jar复制到WEB-INF下. -->		
<fileSet>			
    <directory>${project.build.directory}/</directory>			
    <outputDirectory>webapp/WEB-INF/lib/</outputDirectory>			
    <includes>				
        <include>*.jar</include>			
    </includes>		
</fileSet>


5、资源分享

文档说明:https://www.qinhaisenlin.com/doc/2-2

注解路由代码地址:https://pan.baidu.com/s/1RnkPSwSE4GiKoMASAi4g7g  

提取密码:dny1

JFinal-layui社区:https://www.qinhaisenlin.com

开源项目地址:https://gitee.com/QinHaiSenLin/Jfinal-layui


评论区

JFinal

2019-01-06 17:06

确实有不少人喜欢用路由扫描, 感谢你的分享,代码很简洁

JFinal

2019-01-06 17:06

点赞 + 收藏, 下回有人再问我要这个功能,直接给你的这个链接

琴海森林

2019-01-06 17:31

@JFinal 因为很多人都是习惯了那样的方式,这样的方式也确实方便点

穿越123

2019-01-07 11:09

@JFinal 波总有没有打算把这个路由扫描整合到jfinal中

happyboy

2019-01-08 16:22

@JFinal 波总不打算推出通过注解来管理路由的功能吗?o(* ̄︶ ̄*)o

happyboy

2019-01-08 16:24

通过注解来管理路由的方式,很早之前就有了,2015年的时候我就参考了一个博主的方法。通过注解来管理,大家还是挺喜欢的。有点民心所向,波总是不是该考虑下了。

JFinal

2019-01-08 16:26

@happyboy 要提供也是以另一个项目的方式提供, jfinal 官方不建议这么用,因为本质上并没有带来好处:代码量、学习成本、安全性、性能方方面面来考虑

唯一的好处可能是照顾到了 spring 用户的使用习惯

琴海森林

2019-01-16 17:19

优化了路由扫描,AutoBindRoutes增加setPackageName(String packageName)和setTargetName(String targetName)两个方法,指定package和文件类型,避免干扰其他路由器,默认是扫描所有package下的*Controller.class文件

巨轮深港啊

2019-12-06 10:30

这个插件我用了 不是很好用 打成fatjar时候不顶用了

巨轮深港啊

2019-12-06 10:30

难受

JFinal

2019-12-07 00:16

@巨轮深港啊 改改 AutoBindRoutes 源码,让其支持在 jar 包中扫描

巨轮深港啊

2019-12-07 09:15

@JFinal 已解决,谢詹波哥

JFinal

2019-12-07 11:13

@巨轮深港啊 最后通过哪种方案解决的, 分享出来啊

巨轮深港啊

2019-12-07 11:17

@JFinal 解决方案就是采用官方的.. 另一个帖子已经回复了..

巨轮深港啊

2019-12-07 11:18

@JFinal 波哥帮我看下我刚刚的反馈贴,如何优雅的去除敏感信息,稍微提示一下就行

琴海森林

2019-12-07 14:01

@巨轮深港啊 这个扫描本身是支持扫描jar的,开启配置autoBindRoutes.includeAllJarsInLib(true);即可

巨轮深港啊

2019-12-07 15:30

@琴海森林 谢谢,我有空试一下