# Netty-SpringMVC **Repository Path**: xxx54/Netty-SpringMVC ## Basic Information - **Project Name**: Netty-SpringMVC - **Description**: netty 集成spring mvc,将其作为http服务发布, 支持get和post请求 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-10 - **Last Updated**: 2023-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # netty 集成 spring mvc 将netty的HttpRequest和HttpResponse对象与servlet的对象进行相互转换。我采用了springtest提供的用来模拟HttpServletRequest和HttpServletResponse的类,这两个类也是它们的子类。 org.springframework.mock.web.MockHttpServletRequest; org.springframework.mock.web.MockHttpServletResponse; #### 项目功能 - 支持spring mvc的controller中,注解方式获取参数 - 支持返回json - 支持post请求 #### 如何测试 - 下载项目,启动org.springframework.sandbox.netty.MyServer - 浏览器访问 http://localhost:8080/hello/foo, 如果返回结果,表示启动成功 #### 如何打包并发布 - 使用maven打包:mvn package - 启动jar:java -jar target/Netty-SpringMVC-1.0.0-SNAPSHOT.jar - 浏览器访问 http://localhost:8080/hello/foo, 如果返回结果,表示启动成功 #### 如何添加自己的业务 - 在org.springframework.sandbox.mvc.TestController中,你可以添加自己的方法 #### 待添加的功能 - 热部署(Hot deployment) - 集群(cluster) #### 版本信息 - 0.0.2 : 集成mybatis - 0.0.1 : 实现netty+springMVC的集成 2019.7.1 更新了StevenTest SpringMVC初始化必须要在Main中执行。执行后每个Socket连接的时候,Channel都必须要被创建。所以Spring的dispacth必须要作为 单例被执行。不需要每次都执行dispatch的初始化 2021.11.15 更新了多协议解析+SpringMVC的部分 客户端采用pro-netty的客户端。通信的包为前面是4个字节+body 在body中,第一个字段为url的路径。 客户端没有任何修改。 服务端,采用NettySpringMVC新建一个文件夹。使用解包的结果转为FullHttpRequest 将其转到后面的SpringMVC的结构。 reference https://www.thinbug.com/q/29071752 https://stackoverflow.com/questions/29071752/how-to-convert-nettys-fullhttprequest-to-httpservletrequest https://github.com/code4craft/netty-servlet/blob/master/src/main/java/us/codecraft/netty_servlet/connector/netty/NettyHttpServletRequestAdaptor.java 这个应该更有效 https://blog.csdn.net/shzy1988/article/details/78841140 目录nettyext是增强版本。