一、满足第一个条件,足够小,所以要引用足够少的jar包。如下:
轻量IOC支持
gunice-3.0.jar
javax.inject.jar
日志组件
logback-core-1.0.7.jar
logback-classic-1.0.7.jar
slf4j-api-1.6.6.jar
commons-logging-1.1.jar
模板引擎
velocity-1.7.jar
velocity-tools-2.0.jar
数据库相关
mysql-connector-java-5.1.26-bin.jar
c3p0-0.9.1.2.jar
commons-dbutils-1.5.jar
缓存
ehcache-core-2.6.2.jar
公共
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-configuration-1.6.jar
commons-fileupload-1.2.2.jar
commons-io-2.4.jar
commons-lang-2.6.jar
总大小 6.7M
二、优雅URL,等下见示例
三、美工输出的东西完全重用,使用Velocity模板,完全没问题
四、开发高效,一天上线不是神话,见下面示例
打开Eclipse,新建了一个java web工程,加入美工输出的内容
美工输出大概包括这些内容:
css/xxx.css
js/xxx.js
images/xxx.png
及html文件,这些文件应该是UTF-8编码的,直接拷到webRoot下。
web.xml片断
Set Character Encoding
org.apache.catalina.filters.SetCharacterEncodingFilter
encoding
UTF-8
ignore
true
dispatcher
org.express.portal.DispatcherFilter
container
Guice
maxFileSize
104857600
modules
com.maca.portal.PortalModule,com.maca.portal.ZhModule
template
Velocity
portalModule.java片断
import com.google.inject.Binder;
import com.google.inject.Module;
public class PortalModule implements Module
{
@Override
public void configure(Binder binder)
{
binder.bind(Portal.class).asEagerSingleton();
}
}
下面这个Protal.java,你的代码全在这里,片断
@Mapping("/products-organic-super-foods/maca")
public Renderer maca()
{
//需要带到页面渲染的数据
Map model = new HashMap();
try
{
//这里写逻辑
}
catch(Exception e)
{
log.error("",e);
}
return new TemplateRenderer("/maca.html","model",model);
}
上面是简单示例,还有基础架构代码74个java文件,后面一并奉上。