第五章 Spring3.0 、Hibernate3.3与Struts2的整合 基于Annotation
Annotation的方式是通过注解的方式把Struts2中的Action、Dao层的实现类、Service层的实现类交由Spring管理,不需要在配置文件中进行配置。但为了方便,事务的管理依然使用的是Schema的方式。如果有需要,可以参照4.3.2中的方式,使用@Transactional对service层进行事务管理。
给工程加入Spring与Hihernate的功能,这个步骤也5.1.1的相同。
http://blog.csdn.net/p_3er/article/details/10526617
打开Spring的扫描功能。
配置数据源。
配置SessionFactory。由于我们的实体类也是基于Annotation的,所以SessionFactory的class是AnnotationSessionFactoryBean。
把数据表生成Annotation的形式管理映射的实体类。
配置Schema方式的事务管理。
web.xml的配置与5.2.1一样。
http://blog.csdn.net/p_3er/article/details/10526617
由于struts2的配置都由注解完成,所以我们不再需要struts.xml配置文件。
/** * prototype 设置一次请求一个action对象 * <package name="a" extends="struts-default" namespace="/user"><action name="add" class="userAction"><result name="success">/success.jsp</result></action></package> * @ParentPackage相当于package extends * @Namespace 相当于package namespace * @Results 相当于result结果集 */@Controller@Scope("prototype")@ParentPackage(value = "struts-default")@Namespace("/user")@Results({@Result(name="success",value="/success.jsp"),})public class UserAction {/* * 如果参数过多的话,应该使用struts2驱动模型 */private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Autowired private UserService userService;/** * 如果想执行这个方法。页面上调用 user/user.action. */public String execute(){User user = new User();user.setUsername(username);user.setPassword(password);userService.addUser(user);return "success";}/** * 如果执行的是这个方法。页面调用user/user!next.action */public String next(){System.out.println("aaaaaaaaaaa");return "success";}}