struts2与Spring集成的自动装配策略
在使用Struts2与Spring集成的时候开发者不必在Spring中去注册action,尽管可以这么去做,通常Struts框架会自动地从action mapping中创建action对象。默认情况下框架使用的自动装配策略是name,也就是说框架会去Spring中寻找与Action属性名字相同的bean,可选的装配策略还有:type、auto、constructor,开发者可以通过常量struts.objectFactory.spring.autoWire来进行设置。 创建实例时,不是利用配置Action时指定的class属性值,根据bean的配置id属性,从Spring容器中获得相应的实例。
但是使用自动装配策略的时候遇到NullPointerException,也就是在action里的业务逻辑组件是空的,如果遇到这种情况,第一步先检查命名规则对不对,比如采用默认的name策略,spring中注册了一个abcService,那么action中必须有setAbcService方法,如果这地方没错,八成就是缺少struts2-spring-plugin文件,复制到lib下面再运行一遍就可以了。