最近帮朋友做个项目,用jetty和h2db,以及springmvc。在坛子里看到鲨鱼兄出品,几位nutz界大神出品的nutzwk。想着可以学习看看,于是打算把项目基于nutzwk来做。接下来记录下整个开发过程。
今天第一弹,说点入门的。
开发环境
首先说下我的开发环境,centos6.5,idea14.1社区版,maven3.3,smartgit客户端。
跑起来
首先第一步,啥也不说,跑起来先,在run config中新建java application,Main Class中输入启动类:org.nutz.web.WebLauncher
剩下的建立好数据库,启动,ok-------报错了,
编译报错了,说是“无效的源发行版:8“。一看pom.xml文件中编译使用的jdk版本为1.8,而我机器默认是1.7的,于是将jdk版本设置为1.8。
重新启动,ok -----正常...
访问http://localhost:8080,正常,访问http://localhost:8080/private/login,登录正常。
日志配置
呃,日志输出,默认debug级别,看着太感人了(谁发明这句话,你很逗逼!),更改下log4j.properties;重启,恩,世界变得清爽多了。
更换数据库
恩,为了项目部署方便,所以朋友要求使用内置数据库,所以肯定要换数据库,我之前用的是sqlite;嗯?你问为什么?我也不知道为什么。只知道android内置的是这货。那谁有句名言:当我没有时间(或者没有能力)去判断哪个技术好用的时候,跟着大厂走就行了。
那么接下来就是把mysql换成h2db。谁在用饭菜扔我,哦,为什么不用slite!我也是刚知道,h2db和mysql兼容啊。我不用改动一行java代码就能把nutzwk的mysql换成h2db啊。我要用sqlite那不是二吗?
- 第一步,pom.xml中添加h2db依赖:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.176</version>
</dependency>
- 第二步,更改jdbc连接配置
db.url=jdbc:h2:db/nutzwk
db.username=admin
db.password=admin
- 第三步,刚才说错了,还是需要几行java代码的,怎么着也得把数据库服务启动起来啊,增加个h2服务类
public class H2Server {
private static final Log log = Logs.get();
private static Server h2Server;
/**
* 启动h2服务
*/
public static void startH2Server() {
if (h2Server != null && h2Server.isRunning(true)) {
return;
}
try {
log.info("database path is " + "正在启动h2...");
boolean dbIsActive = new File("h2db").isDirectory();
log.info("database path is " + new File("h2db").getAbsolutePath());
h2Server = Server.createPgServer(new String[]{"-baseDir", "h2db"}).start();
} catch (SQLException e) {
log.error("启动h2出错:" + e.toString());
e.printStackTrace();
throw new RuntimeException(e);
}
log.info("数据库启动完毕...");
}
public static void stopH2Server() {
if ( h2Server!= null) {
log.info("正在关闭h2...");
h2Server.stop();
log.info("关闭成功.");
}
}
}
然后在Setup.java的init方法中初始化数据表之前调用 : H2Server.startH2Server();
- 最后,去掉daocache配置,因为这个插件不支持h2db了,在dao.js中将的dao的field配置注释掉
fields : {
executor : {refer:"cacheExecutor"}
}