Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DavidCate/NettyWebFrame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

54 Commits

Repository files navigation

NettyWebFrame

##这是一个轻量级的基于Netty的Web框架。喜欢有兴趣的大佬可以一起来完善。

##目前该框架已经支持HTTP协议的处理和WEBSOCKET协议的处理

##HTTP部分目前只做了常用的GET/POST请求的支持,后续可扩展

##使用该框架可以轻松的开发web应用接口,提供了一些类似于Spring框架的注解,例如@Controller, @RequestMapping,@RequestBody,@Param,@RestController,@PathParam,@Autowired,@Service,@Component。

##框架使用教程

//普通http接口
@Controller
public class TestController {
 @Autowired
 UserInfoMapper userInfoMapper;
 
 @Autowired
 LoginService loginService;
 @RequestMapping(url = "/xxx",method = RequestMapping.Method.POST)
 public Object test(FullHttpRequest fullHttpRequest, @Param("xxx")String a, @RequestBody Pojo pojo, @MapperParam TestMapper testMapper){
 System.out.println(a);
 System.out.println(JSON.toJSONString(pojo));
 Container container = HttpServerLauncher.getContainer();
 container.getClass("");
 Integer integer = userInfoMapper.select1();
 System.out.println(integer);
 loginService.login();
 return null;
 }
}
//rest http接口
@RestController
public class TestRestController {
 @RestRequestMapping(url = "/{appId}/aaa",method = RestRequestMapping.Method.POST)
 public Object test(@PathParam("appId") String appId, @Param("bbb")String bbb, @RequestBody Pojo pojo, FullHttpRequest fullHttpRequest, FullHttpResponse fullHttpResponse){
 System.out.println(appId);
 System.out.println(bbb);
 System.out.println(JSON.toJSONString(pojo));
 JSONObject res=new JSONObject();
 res.put("aaa","xxx");
 return res;
 }
 @RestRequestMapping(url = "/{appId}/aaa1",method = RestRequestMapping.Method.POST)
 public Object test1(@PathParam("appId") String appId, @Param("bbb")String bbb, @RequestBody Pojo pojo, FullHttpRequest fullHttpRequest, FullHttpResponse fullHttpResponse){
 System.out.println(appId);
 System.out.println(bbb);
 System.out.println(JSON.toJSONString(pojo));
 fullHttpResponse.headers().add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON);
 fullHttpResponse.content().writeBytes("xxx".getBytes());
 fullHttpResponse.content().writeBytes(Unpooled.wrappedBuffer("xxxxx".getBytes()));
 return fullHttpResponse;
 }
}
//拦截器
@Component
public class WebFilter implements WebConfiguration {
 @Override
 public void addInterceptors(InterceptorRegistry registry) {
 registry.addInterceptor(new GlobalInterceptor()).addPathPatterns("/.*").order(0);
 }
}
public class GlobalInterceptor implements Interceptor {
 @Override
 public boolean postHandler(FullHttpRequest fullHttpRequest, FullHttpResponse fullHttpResponse, Method handlerMethod) {
 System.out.println("全局拦截器 posthandler");
 return true;
 }
 @Override
 public void afterCompletion(FullHttpRequest request, FullHttpResponse response, Object handler, Exception ex) {
 System.out.println("全局拦截器aftercompletion");
 }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /