SSH的创建案列

来源:互联网 发布:淘宝店最好的流量获取 编辑:程序博客网 时间:2024/05/29 18:47
<strong>  一共有6步(文章底部附有源码下载地址,刚学完ssh的可以借鉴)</strong>  1 写一个Hibernate应用,完成用户的增加      1) User实体      2)UserDao接口          save(User u)      3)UserDaoImpl实现UserDao          save(User u){              //用hibernate api          }  2 让spring注入SessionFactory      1)在上一个应用中导入Spring的jar包          除了基础的6个包,还得导入2个jar包          org.springframework.jdbc-3.0.5.RELEASE.jar          org.springframework.orm-3.0.5.RELEASE.jar          org.springframework.transaction-3.0.5.RELEASE.jar      2) 增加配置文件beans.xml          <bean id="sessionFactory"              class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">                  <property name="configLocation"  value="classpath:hibernate.cfg.xml"/>          </bean>          <bean id="userDao" class="包名.UserDaoImpl">              <property name="sessionFactory" ref="sessionFactory">          </bean>      3) 在测试方法中,获得userDao,然后测试save()              UserDao userDao= (UserDao)cxt.getBean("userDao");  3 添加数据源,并注入到SessionFactory        1) 需要导入2个包              commons-dbcp.jar              commons-pool.jar          注:数据源的第3方实现有非常多,现我们用其中一种,commons-dbcp      2) 配置Datasource      <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">          <property name="driverClassName" value="com.mysql.jdbc.Driver"/>          <property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>          <property name="username" value="root"/>          <property name="password" value="123456"/>      </bean>      3)在SessionFactory Bean中注入dataSource      <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">          <!-- 注入DataSource Bean-->          <property name="dataSource" ref="myDataSource"/>          <property name="mappingResources">              <list>                  <value>com/toceansoft/entity/User.hbm.xml</value>              </list>          </property>          <property name="hibernateProperties">              <value>                  hibernate.dialect=org.hibernate.dialect.MySQLDialect                  hibernate.hbm2ddl.auto=update                  hibernate.show_sql=true              </value>          </property>      </bean>      4) 测试结果  4 使用spring提供的HibernateTemplate      1) 在Dao中添加      private HibernateTemplate hibernateTemplate;      public void setSessionFactory(SessionFactory sessionFactory) {          this.hibernateTemplate = new HibernateTemplate(sessionFactory);      }      2)修改方法,改成使用hibernateTemplate          save(o)              hibernateTemplate.save(o);  5 使用spring在业务层切入事务      1)在业务层写一个接口UserService          public void add(User u);      2) 写一个实现类UserServiceImpl实现接口UserService          public void add(User u){}      3)实现类UserServiceImpl提供userDao的get/set方法      4)在beans.xml中配置UserServiceImpl 的Bean,并注入userDao      5)配置事务管理器Bean      <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">          <property name="sessionFactory" ref="sessionFactory"/>      </bean>      6) 配置事务通知      <tx:advice id="txAdvice" transaction-manager="txManager">          <!-- 包括隔离级别,事务传播属性。。。 -->          <tx:attributes>              <tx:method name="add*" propagation="REQUIRED"/>              <tx:method name="*" propagation="SUPPORTS" read-only="true"/>          </tx:attributes>      </tx:advice>      7)配置aop切面      <aop:config>          <aop:pointcut id="serviceMethods"              expression="execution(* com.toceansoft.service.impl.*.*(..))"/>          <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>      </aop:config>      8)测试结果      9)在add方法内抛出异常,再测试观察结果          throw new RuntimeException();  6 整合Spring与Struts      1)在把上面的java 应用变成web应用              --把上面应用Src下的所有东东复制到web应用的src      2)导入struts2开发的基础jar包,还需要一个特殊包          struts-spring-plugin.jar          导入与struts2整合的spring相应的包          org.springframework.web.struts-3.0.5.RELEASE.jar          org.springframework.web-3.0.5.RELEASE.jar      3) 把beans.xml 复制到WEB-INF,并且改名为applicationContext.xml(可选的)      4) 在web.xml中配置spring启动的监听器      <context-param>      <param-name>contextConfigLocation</param-name>      <param-value>/WEB-INF/applicationContext.xml,classpath*:applicationContext2.xml</param-value>      </context-param>      <listener>      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>      </listener>      5)在web.xml配置Struts2的启动      <filter>          <filter-name>struts2</filter-name>          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>          <!--  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->      </filter>      <filter-mapping>          <filter-name>struts2</filter-name>          <url-pattern>/*</url-pattern>      </filter-mapping>      6)在Web包下写UserAction,并且提供业务层UserSerivce的set方法      7)在appplicationContext.xml中配置UserAction bean      <bean id="userAction" class="com.toceansoft.web.action.UserAction" scope="prototype">          <property name="userService" ref="userService" />      </bean>      注:scope="prototype"      8) 在struts.xml中配置UserAction      <!-- 跳转到添加产品页面 -->          <action name="User_toAdd" >              <result>/User_add.jsp</result>          </action>          <!-- 添加产品 -->          <!-- 关键点:这里的class设置action bean在spring配置文件中bean的id -->          <action name="User_add" class="userAction" method="add">              <result name="success">/grobal_message.jsp</result>          </action>      9) 写2个页面      User_add.jsp      grobal_message.jsp      10)部署测试  
原创粉丝点击