Sping4+Hibernate3+Struts2注解配置整合注意事项:
①在Spring配置文件aplicationContext.xml文件中配置自动扫描Serivce服务类和Dao类的注解包
<context:component-scan base-package="com.aclik.action,com.aclik.dao.impl,com.aclik.service.impl" />
②在struts2的struts.xml配置文件中配置action访问Action类,不然调用Service的Bean类时会出现指针异常
Action的注解配置:
@Component("bookAction")
@Scope("prototype")
public class BookAction extends ActionSupport {
private static final long serialVersionUID = 1L;
@Resource
BookService bookService;
//查询书本的信息
public String getAllBookInfo(){
//List<Book> books = bookService.findBookPriceByIsbn();
Book book = bookService.findBookById(1);
System.out.println(book.getBookName());
return "success";
}
}
struts.xml配置:
<struts> <package name="user" extends="struts-default"> <!-- 此处的class属性值应该和Action类的@Component("bookAction")注解值一致 --> <action name="test" class="bookAction" method="getAllBookInfo"> <result name="success">/test.jsp</result> </action> </package> </struts>
③在Service服务类中调用Dao类操作数据表时候,应使用为实体类名称,而不是数据表名称
@Override
public Book findBookById(Integer id) {
String hql="from Book where id = 1";
Book book = baseDAO.get(hql, new Object[]{});
return book;
}