jfinal项目重构为springboot项目
eclipse插件安装
我们选择的插件是 Spring Tools 4 - for Spring Boot (aka Spring Tool Suite 4) 4.1.2.RELEASE
maven下载安装与eclipse配置
我采用的是 maven 3.6
configConstant/PropKit -> application.properties
例如,区分开发环境与正式环境
1 | spring.profiles.active=dev |
常量配置
1 | application.properties |
java中取的配置文件的值
1 | "${spring.redis.host}") ( |
路由配置 configRoute -> requestmapping
jfinal中的:1
2
3public void configRoute(Routes me) {
me.add("/hello", HelloController.class);
}
修改为:1
2
3
4
5
6
7
8
9
10
11/**
HelloController.class
*/
"hello") (
public class HelloController extends ControllerExt{
"addvote") (
public Object addvote(){
// code
}
插件配置 configPlugin -> @Configuration
例如,如何使用jfinal的ActiveRecordPlugin插件操作数据库,原本jfinal的代码:
(其中包括Redis插件)
1 | /** |
在springboot中修改为:
1 |
|
全局拦截器 configInterceptor -> WebMvcConfigurationSupport
涉及中文乱码问题
jfinal中的:1
2
3
4
5
6
7
8/**
* 配置全局拦截器
*/
public void configInterceptor(Interceptors me) {
me.add(new EncodingInterceptor());
me.add(new ExceptionInterceptor());
me.add(new AuthInterceptor());
}
Springboot中:
1 |
|
configHandler -> ResponseEntityExceptionHandler/ResponseBodyAdvice
涉及到格式化输出,统一的异常处理。
jfinal中:
1 | /** |
springboot中:
1 |
|
事件监听
例如jfinal中有onStart()、onStop()系统启动完成之后以及系统关闭之前分别回调这两个方法,springboot中支持更好, 并且springboot支持自定义事件
1 |
|
Controller 变更
注解@RestController/@Controller表示此类为Controller
RequestMapping注解标识访问路径和方法等
1 |
|
日志配置
springboot默认的是logback,若替换为jfinal使用的logkit需要:
1 | <!-- pom.xml --> |
事务处理 @Before(Tx.class)
//自定义注解
参考链接 JFinal ActiveRecordPlugin插件事物交给Spring管理
热部署配置方法
pom.xml配置热部署
1 |
|
@Bean
- Spring容器管理的Java对象称之为Bean。
- 依赖注入其主要的作用,可以说就是维护Spring容器创建的Bean之间的依赖关系,简单来说就是一个bean(假定名为A)持有另一个Bean(假定名为B)的引用作为成员变量b,则由Spring容器自动将B赋值给A的成员变量b
定时任务
根据检索与尝试结果,springboot自带的定时任务功能可以较好的支持固定不变的定时任务,例如固定执行频率,固定执行频率+初次延迟,cron表达式
1 | //springboot自带的几种定时任务注解 |
因此,动态定时任务需要结合Quartz插件。资料:csdn博客