在前面兩篇中我們從基本的項目建立到框架搭建,將項目已經(jīng)搭建成功,并將基本的配置項也都已經(jīng)配置完成,那么這里我們就進(jìn)入到對框架的熟悉和一個工具 generator 的使用!
(一)項目部分配置文件的初始化
我們在前面框架中層在 web.xml 文件中配置了一個啟動 Servlet 初始化文件,這里做的就是在項目中需要用到某些配置文件的時候,我們在這個時候?qū)ε渲梦募械闹党跏蓟焦?Properties 中,以方便后面的調(diào)用,基本代碼實現(xiàn)如下:
package com.cuiyongzhi.web.start;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
/**
*
* ClassName: InterfaceUrlIntiServlet
*
* @Description: 項目文件初始化
* @author dapengniao
* @date 2015/10/13
*/
public class InterfaceUrlIntiServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
InterfaceUrlInti.init();
}
}
package com.cuiyongzhi.web.start;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import com.cuiyongzhi.web.util.GlobalConstants;
/**
*
* ClassName: InterfaceUrlInti
* @Description: 項目啓動配置文件初始化
* @author dapengniao
* @date 2015/10/13
*/
public class InterfaceUrlInti {
public synchronized static void init(){
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Properties props = new Properties();
if(GlobalConstants.interfaceUrlProperties==null){
GlobalConstants.interfaceUrlProperties = new Properties();
}
InputStream in = null;
try {
in = cl.getResourceAsStream("interface_url.properties");
props.load(in);
for(Object key : props.keySet()){
GlobalConstants.interfaceUrlProperties.put(key, props.get(key));
}
props = new Properties();
in = cl.getResourceAsStream("wechat.properties");
props.load(in);
for(Object key : props.keySet()){
GlobalConstants.interfaceUrlProperties.put(key, props.get(key));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(in!=null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return;
}
}
在這里我初始化化了兩個文件,一個是用來配置在微信開發(fā)中經(jīng)常用的到 appid、AppSecret 的參數(shù)(wechat.properties),另外一個用來初始化我們經(jīng)常用到的 http 請求的 url 地址 interface_url.properties!
初始化成功之后我們只需要通過下面的方法即可在項目中任何想用的地方去使用:GlobalConstants.getInterfaceUrl(key),如下:
package com.cuiyongzhi.web.util;
import java.util.Properties;
public class GlobalConstants {
public static Properties interfaceUrlProperties;
/**
*
* @Description: TODO
* @param @param key
* @param @return
* @author dapengniao
* @date 2015 年 10 月 13 日 下午 4:59:14
*/
public static String getInterfaceUrl(String key) {
return (String) interfaceUrlProperties.get(key);
}
}
(二)對日志文件的配置說明
在我搭建的開發(fā)環(huán)境中采用的是 log4j 日志記錄的方式,這種方式對普通項目是沒有問題的,后續(xù)將有可能升級為 logback,首先我們在 resources 下新建文件 log4j.properties,簡單配置如下:
log4j.rootLogger=DEBUG,Console,File
#ERROR,WARN,INFO,DEBUG 日志輸出等級依次降低,可以根據(jù)自己的需求自己調(diào)整輸出等級
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Threshold=DEBUG
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=${catalina.base}/wechatlogs/wechat.log
log4j.appender.File.Threshold=INFO
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.Append=true
log4j.appender.File.ImmediateFlush=true
log4j.appender.File.DatePattern=yyyy-MM-dd'.log'
log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
有了上面的配置文件之后我們在 web.xml 中加入如下的啟動配置即可:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
簡單的使用如下圖所示:
http://wiki.jikexueyuan.com/project/java-wechat/images/10.png" alt="" />
(三)Mybatis 工具 Generator
在這里我要推薦一款工具 Generator,在項目開發(fā)中他給我節(jié)省了很多,他的作用是讓我們能很方便生成我們需要的表對應(yīng)的 pojo、mapping、dao 的代碼,而且使用起來非常簡單,由于這篇文章篇幅不短了,所以我開了一篇新的來詳細(xì)講解它的使用,地址:http://www.cuiyongzhi.com/?id=36
感謝你的翻閱,如有疑問可以留言一起討論額!