转载自 落神飘渺云403
加载spring的方法。
基本上两种:
1、Netty启动Spring容器,
写一个启动Spring的类,读取Application-Context.xml。将ctx载入。
在启动Netty的main方法里面调用那个类的静态init方法。Spring就被加载了。
2、启动Spring容器,将NettyServer作为一个Spring Bean来启动。
写一个main函数,里面读取Spring的配置文件,ctx.getBean("nettyServer")。
nettServer.init();
nettyServer.start();
这样就启动了Netty;
需要注意的是,用@Autowired需要将Netty中RestHandler一并配制成Springbean,交给springIOC容器来管理。
不然通过new出来的handler调用的action等等会是空指针的。
第一种方法第二种方法比较:
我觉得第二种灵活性更大。
而且可以很好的和注入搭配起来,不然就要一直调用ctx.getbean。
代码量少了。
而且有什么需要在一开始就执行的方法业务等就在那个main函数里面调用bean.方法就好了。
还有一个需要注意的地方就是,在netty里面传请求 有的都是通过构造方法来传的,而且还是new的。
所以就需要配置响应bean成protype。像action、handler。原来使用构造函数来传递req现在就要写个方法来传了。如果代码里面有了带参的构造函数,必须要写个空参的构造函数。