JFinal快速开发框架(二)——IDEA下Maven+Tomcat
目录
由于 jfinal 热加载是通过监控 class 文件是否被更新而触发的,但 IDEA 默认不支持自动编译,所以其 class 文件在开发过程中不会被更新,所以 IDEA 之下默认并不支持热加载,之前带我的师傅推荐我用jrebel热部署插件,**费点时间,实测用处不大,后续没有再使用了。mac系统+idea快捷键+触摸板~将极大提高开发效率。摘至官方文档IDEA下开发
本项目代码地址:jfinal-demo-02-idea-maven
1、创建项目
2、完成之后选中项目目录右键,点击open module settings:
选中module,选中我们新建的项目,点击添加:
选择web:
将路径修改一下,ok,如图:
这个时候项目目录结构如下:
2、引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.perfree</groupId>
<artifactId>jfinal-demo02-idea-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>3.5</version>
</dependency>
</dependencies>
<build>
<finalName>jfinal-web-demo-provider</finalName>
<plugins>
<plugin>
<!--maven对应的tomcat插件,启动tomcat的时候使用-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8081</port>
<path>/</path>
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3、web.xml配置
这里配置demo.DemoConfig,意思是所有的请求都要拦截经过demo包下的DemoConfig类,这个要和你具体创建的config类对应
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>demo.DemoConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
4、DemoConfig
新建demo包,在demo包下新建DemoConfig继承JFinalConfig并实现其中的方法:
在configConstant方法里开启开发模式,注意开发模式只能参照文章开头提到的方式运行,因为idea并不自动编译
在configRoute方法里配置路由
package demo;
import com.jfinal.config.*;
import com.jfinal.template.Engine;
public class DemoConfig extends JFinalConfig {
public void configConstant(Constants constants) {
// 开启开发模式
constants.setDevMode(true);
}
public void configRoute(Routes routes) {
// 配置路由,/hello或者/ 访问http://localhost:8081/hello/ 默认访问HelloController的index()方法,如果访问http://localhost:8081/hello/sayHello,将访问HelloController的sayHello方法
routes.add("/hello", HelloController.class);
}
public void configEngine(Engine engine) {
}
public void configPlugin(Plugins plugins) {
}
public void configInterceptor(Interceptors interceptors) {
}
public void configHandler(Handlers handlers) {
}
}
5、HelloController
package demo;
import com.jfinal.core.Controller;
public class HelloController extends Controller {
public void sayHello() {
renderText("sayHello");
}
public void index() {
renderText("index hello");
}
}
6、启动测试
点击maven projects,tomcat7:run 如下图:
出现如下内容,启动成功:
7、访问
访问http://localhost:8081/hello/ 默认访问HelloController的index()方法:
访问http://localhost:8081/hello/sayHello,将访问HelloController的sayHello方法:
over again~~