在下面的单元测试DataAccessTest类中articleManager输出不为null
[code="java"]
package sunships.dhcc.xtest;
...
public class DataAccessTest extends SpringTxTestCase {
@Autowired
private ArticleManager articleManager;
@Test
@Rollback(false)
public void addArticle() {
System.out.println(articleManager);//非null值
......
}
}
[/code]
但同样如下面的代码,我在action类中的添加article方法中,获取的articleManager却为null
[code="java"]
package sunships.dhcc.web;
...
public class ArticleAction extends CrudActionSupport {
@Autowired
private ArticleManager articleManager;
...
@Override
public String save() throws Exception {
System.out.println("aritcleAction:article->" + article.getSubject() + " " + article.getContent());
System.out.println(" " + articleManager);//输出为null
articleManager.save(article);
System.out.println("articleAction-save-divide--------------------");
return RELOAD;
}
...
}[/code]
我错了,有段时间没改配置文件了。
回去查了我的struts2的配置
看起来不是配置问题。
楼主是action里autowired没起作用。
楼主 加了这个struts2的组件么?
struts2-spring-plugin
pom的dependency.
org.apache.struts
struts2-spring-plugin
2.2.1
org.springframework
spring
能把spring的配置信息帖出来吗?
没见到ArticleAction 的配置啊
spring配置文件里缺少
[b][/b]
这句话才是激活 对bean的annotation处理的。
这个只是搜索类,并作为bean加入ApplicationContext
单元测试可以自动注入,说明单元测试用的配置文件应该没有问题,但是却在Action里注入失败。看看测试环境用的配置文件是否和你部署程序的配置文件一致
要是有异常信息的话应该可以更快的确认出现问题的地方
我说的不准确,
参见这篇文章 [url]http://crud0906.iteye.com/blog/897586[/url]
这句话才是激活 Bean的属性上的自动注入相关的annotation处理:Autowired之类
这个只是搜索类,并按照类声明上的Annotation作为合适的bean加入ApplicationContext
因此,解决楼主问题的方法是加上
呃,没仔细看我引用的那篇文章。
那篇文章说不用
但是我的实践经验 (spring 3.x.RELEASE)
是要加的。