Snow框架是一种为了实现“无配置化”项目运作框架。
该框架绑定了一些东西:
1、页面只能使用freemaker
2、持久层只能使用hibernate
3、容器管理使用Google Guice
还支持aspectj的使用。不过使用了aspectj时,必须使用其他的打包或者编译工具,如meven和ant等工具。不能在eclipse里直接编译。Snow网站上有相关的结构图和一些简单的例子。
使用Snow框架开发web项目:
1、环境:eclipse+tomcat+meven+mysql
2、每个使用Snow的项目,都有一个默认的Module。目录结构应该是这样:
项目+++++
--------src
-----WEB-INF
-------lib
------snow
--------mods(Module的父目录)
--------demo(默认的Module)
----------parts (存放相关页面)
---------application.properties(数据库的配置和默认Module都在这里配置,比如snow.defaultWebModuleName = demo)
-------web.xml
3、snow框架方法配置主要通过注解的方式来配置的,不通过配置文件。方法的配置主要有两种方法:
(1)@WebAction
通过方法名来调用
(2)、@WebModel()
通过路径匹配,主要有以下几种方式:
@WebModel(startWith="/home")表示路径以项目下的/home开始的路径的请求都会执行这个方法;
@WebModel(matchs="/home") 表示请求的路径为/home才执行该方法
注:路径的表示可使用正则表达式
4、前后台数据的交互
也大致分为两种:
在@WebAction中,方法可以通过@WebParam("name")来获取前台名为name的变量,要返回值到前台,则只需返回一个Map即可,前台通过m.name即可获取
在@WebModel中,方法可以通过和上面一样的方法来获取变量,也可以通过请求的路径来获取变量,如: 在 @WebModel(matchs="/home")配置下的方 法@WebPath(1) String name,则表示该路径的home后的第一个“/”到下一个“/”之间的值,因为 @WebModel方法参数可以直接使用一个Map<String, Object> m的变量,这个 变量是前后台公用的,如需返回值时只需将要返回的值放在这个Map里即可。
注:在Snow框架里的Map只能使用<String,?>这种类型。