轉載自 落神飄渺雲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現在就要寫個方法來傳了。如果代碼裏面有了帶參的構造函數,必須要寫個空參的構造函數。