1,简单粗暴,先来导入必须的jar,pom GAV如下:
<!-- Servlet -->
g: javax.servlet
a: servlet-api
v: 3.1.0
<!--Spring-->
g: org.springframework
a: spring-context
v: 3.2.2.RELEASE
g: org.springframework
a: spring-tx
v: 3.2.2.RELEASE
g: org.springframework
a: spring-test
v: 3.2.2.RELEASE
g: org.springframework
a: spring-aspects
v: 3.2.2.RELEASE
g: org.springframework
a: spring-orm
v: 3.2.2.RELEASE
g: org.springframework
a: spring-web
v: 3.2.2.RELEASE
g: org.springframework
a: spring-webmvc
v: 3.2.2.RELEASE
g: org.springframework
a: spring-core
v: 3.2.2.RELEASE
g: org.springframework
a: spring-beans
v: 3.2.2.RELEASE
g: org.springframework
a: spring-jms
v: 3.2.2.RELEASE
<!--引入Netty-->
g: io.netty
a: netty-all
v: 4.1.6.Final
<!--使用JSON-->
g: com.alibaba
a: fastjson
v: 1.2.4
g: com.fasterxml.jacksom.core
a: jacksom-databind
v: 2.1.4
<!--第三方插件-->
g: com.notnoop.apns
a: apns
v: 1.0.0.Beta6
g: commons-fileupload
a: commons-fileupload
v: 1.4
2,实现一个Server(Netty的步骤都大同小异)
public class NettyServer {
public static void main(String[] args) {
runServer(9000);
}
private static void runServer(int port) {
EventLoopGroup bossGroup = new NioEventLoopGroup(2);//使用两个线程的线程池来处理对客户端的连接
EventLoopGroup workGroup = new NioEventLoopGroup(5);//使用五个线程的线程池来处理对通信信息的处理
ServerBootstrap serverBootstrap = new ServerBootstrap();
try{
serverBootstrap.group(bossGroup ,workGroup )
.channel(NioServerSocketChannel)
.option(ChannelOption.SO_BACKLOG,1024)
.childOption(ChannelOption.SO_KEEPALIVE,true)
//自定义的,见DispatcherServletChannelInitializer类
.childHandler(new DispatcherServletChannelInitializer());
System.out.println("--------Netty服务端开启成功-----");
ChannelFutrue channelFutrue = serverBootstrap.bind(port).sync();
//异步等待
channelFutrue.channel().closeFuture().sync();
} catch(Exception e) {