这个项目是一个基于netty的mvc框架,简单、高效。
不仅如此,它还很适合新手学习,因为它完全基于模块化设计,代码很少,而且几乎每几行就会有一行注释。
依赖很少,功能简单明了,适合前后端分离的小项目。
摆脱臃肿繁琐的xml,一切基于注解。
内置json转换。
直接运行jar部署。
JDK8
直接导入jar包即可。
随便编写一个类
@Controller
public class RequestTest {
@Url("/")
public String hello(){
return "hello world";
}
public static void main(String[] a ) throws Exception {
sky.creat()
.setPort(9090)
.run();
}
}
访问localhost:9090,不出意外,你应该可以看到hello world了。
为一个类加上@Controller注解,在方法上加上@Url注解。
@Url("/")
public String hello(){
return "hello world";
}
@Url("/login")
public String hello(){
return "hello world";
}
返回值可以是任意类型,默认会返回Object.toString。
如果为void,则什么都不返回。
获取请求参数有两种方法:
@Url("/login")
public String login(String id,String passwd){
return id+passwd;
}
public class User{
String id;
String passwd;
//getter and setter
}
@Url("/login")
public String login(User user){
return user.getId()+user.getPasswd();
}
@Url("/login")
public void login(SkyRequest req,SkyResponse resp){
//获取原始参数
Map<String,List<Object>> map = req.getParam();
//获取请求头
Map<String,Object> headers = req.getHeaders();
//......略
}
//省略传参,传入SkyRequest req和SkyResponse resp
//获取
Cookie[] cookies = req.getCookies();
String value = req.getCookie("id");
//设置cookie
Cookie cookie = new Cookie("id","1");
resp.addCookie(cookie);
//....关于req和resp的更多方法以后再更。
关于静态资源,如果目录下有index.html,则
@Url("/")
public String hello(){
return "index.html";
}
会返回资源目录,template目录下的index.html文件。
普通资源则不用加载,放到static文件件下即可。
若static文件夹下有css文件夹,在下边有test.css
则访问localhost:9090/static/css/test.css即可看到内容。
使用@Json注解过的方法都会将返回值自动转为json格式.
若使用@Json注解类,则代表该类下的所有方法都自动Json化。
@Url("/redirect")
public String redirect(){
return "redirect:http://www.baidu.com";
}
在需要注入的类加上@Service注解。
然后在需要使用的类中
public class test{
@Ioc
Di di;
//略
}
加上Ioc注解即可直接调用。
拦截器,日志输出,模板引擎,session支持,上传文件。