- <</span>strong>
- 一共有6步(文章底部附有源码下载地址,刚学完ssh的可以借鉴)</</span>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 -
<</span>bean id="sessionFactory" -
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> -
<</span>property name="configLocation" value="classpath:hibernate.cfg.xml"/> -
</</span>bean> -
-
-
<</span>bean id="userDao" class="包名.UserDaoImpl"> -
<</span>property name="sessionFactory" ref="sessionFactory"> -
</</span>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 -
<</span>bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> -
<</span>property name="driverClassName" value="com.mysql.jdbc.Driver"/> -
<</span>property name="url" value="jdbc:mysql://localhost:3306/spring_db"/> -
<</span>property name="username" value="root"/> -
<</span>property name="password" value="123456"/> -
</</span>bean> -
-
3)在SessionFactory Bean中注入dataSource -
-
<</span>bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> -
-
<</span>property name="dataSource" ref="myDataSource"/> -
-
<</span>property name="mappingResources"> -
<</span>list> -
<</span>value>com/toceansoft/entity/User.hbm.xml</</span>value> -
</</span>list> -
</</span>property> -
-
<</span>property name="hibernateProperties"> -
<</span>value> -
hibernate.dialect=org.hibernate.dialect.MySQLDialect -
hibernate.hbm2ddl.auto=update -
hibernate.show_sql=true -
</</span>value> -
</</span>property> -
</</span>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 -
<</span>bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionMana ger"> -
<</span>property name="sessionFactory" ref="sessionFactory"/> -
</</span>bean> -
6) 配置事务通知 -
<</span>tx:advice id="txAdvice" transaction-manager="txManager"> -
-
<</span>tx:attributes> -
<</span>tx:method name="add*" propagation="REQUIRED"/> -
<</span>tx:method name="*" propagation="SUPPORTS" read-only="true"/> -
</</span>tx:attributes> -
</</span>tx:advice> -
7)配置aop切面 -
<</span>aop:config> -
<</span>aop:pointcut id="serviceMethods" -
expression="execution(* com.toceansoft.service.impl.*.*(..))"/> -
<</span>aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/> -
</</span>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启动的监听器 -
<</span>context-param> -
<</span>param-name>contextConfigLocation</</span>param-name> -
<</span>param-value>/WEB-INF/applicationContext.xml,classpath*:applicationContext2.xml</</span>param-value> -
</</span>context-param> -
<</span>listener> -
<</span>listener-class>org.springframework.web.context.ContextLoaderListener</</span>listener-class> -
</</span>listener> -
-
5)在web.xml配置Struts2的启动 -
<</span>filter> -
<</span>filter-name>struts2</</span>filter-name> -
<</span>filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteF ilter</</span>filter-class> -
-
</</span>filter> -
-
<</span>filter-mapping> -
<</span>filter-name>struts2</</span>filter-name> -
<</span>url-pattern>/*</</span>url-pattern> -
</</span>filter-mapping> -
-
6)在Web包下写UserAction,并且提供业务层UserSerivce的set方法 -
-
7)在appplicationContext.xml中配置UserAction bean -
<</span>bean id="userAction" class="com.toceansoft.web.action.UserAction" scope="prototype"> -
<</span>property name="userService" ref="userService" /> -
</</span>bean> -
注:scope="prototype" -
-
8) 在struts.xml中配置UserAction -
-
<</span>action name="User_toAdd" > -
<</span>result>/User_add.jsp</</span>result> -
</</span>action> -
-
-
-
<</span>action name="User_add" class="userAction" method="add"> -
<</span>result name="success">/grobal_message.jsp</</span>result> -
</</span>action> -
-
9) 写2个页面 -
User_add.jsp -
grobal_message.jsp -
-
10)部署测试
ssh完整例子--第一个ssh(转)
最新推荐文章于 2017-12-17 21:36:21 发布