一、导入spring
1、导入spring jar文件
2、在src目录下创建beans.xml文件(在其他项目考入相关配置)
3、创建一个TestService类,并启用事务
@Transactional
publicclass TestService {
private String testName;
public String getTestName() {
returntestName;
}
publicvoid setTestName(String testName) {
this.testName = testName;
}
}
4、在beans.xml文件中配置testService对象
<bean id="testService" class="com.ccms.test.TestService">
<property name="testName">
<value>123</value>
</property>
</bean>
5、创建一个主类MainTest,用于测试spring配置是否成功
publicclass MainTest {
publicstaticvoid main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
TestService ts=(TestService) ac.getBean("testService");
System.out.println(ts.getTestName());
}
}
如果测试成功,将打印出123!
二、导入Hibernate
1、使用MyEclipse导入Hibernate,并生成Hibernate.hbm.xml文件
2、(可选)删除MyEclipse引入的jar包,并引入自己的Hibernate 的jar 包
3、使用MyEclipse的逆向工程生成domian对象
4、配置beans.xml文件
<!-- 启用注解扫描 -->
<context:annotation-config/>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ccms?useUnicode=true&characterEncoding=gbk" />
<property name="username" value="root" />
<property name="password" value="123456" />
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="3" />
<!-- 连接池的最大值 -->
<property name="maxActive" value="500" />
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2" />
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1" />
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 引用上面的数据源(会话工厂依赖于数据源的) spring自带数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 接管了Hibernate的对象映射文件 -->
<property name="mappingResources">
<list>
<!-- 这里面放置domain对象的关系映射文件 -->
<value>com/ccms/domain/Student.hbm.xml</value>
<value>com/ccms/domain/Picture.hbm.xml</value>
<value>com/ccms/domain/Information.hbm.xml</value>
<value>com/ccms/domain/Consumption.hbm.xml</value>
<value>com/ccms/domain/Campuscard.hbm.xml</value>
</list>
</property>
<!-- 下面配置方言,制动更新,是否显示HQL语句... -->
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true;
</value>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 启用事务注解 -->
<tx:annotation-driven transaction-manager="txManager"/>
5、此时spring已经接管了Hibernate
6、编写ServiceTest类如下:
@Transactional
publicclass TestService {
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
returnsessionFactory;
}
publicvoid setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public List showStudent(){
returnsessionFactory.getCurrentSession().createQuery("from Student").list();
}
}
8、在beans.xml文件中配置TestService的bean对象
<bean id="testService" class="com.ccms.test.TestService">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
9、编写MainText进行测试
publicclass MainTest {
publicstaticvoid main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
TestService ts=(TestService) ac.getBean("testService");
List list=ts.showStudent();
for(int i=0;i<list.size();i++){
Student s=(Student) list.get(i);
System.out.println(s.getSname());
}
}
}
10、如果测试成功,将打印出Student表的所有信息
三、引入Struts1.3(这里不同版本略有不同)
1、因为我们要使用struts-configurate.xml文件的图像界面,所有需要理由MyEclipse导入struts1.3(自选)
2、(可选)删除MyEclipse引入的jar包,自己导入需要的jar文件
3、创建一个Action和一个页面进行测试,这里基本没问题!
4、编写web.xml文件,因为项目启动肯定先访问web.xml文件,这里我们需要让spring接管struts,所以需要配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!-- 对Spring容器进行实例化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置openSessionInView -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、我们还需要配置struts-config.xml文件,让spring接管struts
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
6、当我们配置到这里,spring已经接管了struts,此时ssh整合已经基本完 成了
7、接下来我们就应该进行ssh的测试了!
8、创建一个Action,TestAction,并将TestService设置为bean
将TestService设置为bean之后,spring就可以使用了,此时就不需要使用ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");来读取beans.xml文件了
publicclass TestAction extends Action {
@Resource
private TestService testService;
public TestService getTestService() {
returntestService;
}
publicvoid setTestService(TestService testService) {
this.testService = testService;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List list=testService.showStudent();
request.setAttribute("list", list);
return mapping.findForward("show");
}
}
11、创建一个界面showtest.jsp,用于验证show跳转
<c:forEach items="${list}" var="student">
${student.sno}|${student.sname}<br />
</c:forEach>
12、此时我们使用Tomcat部署项目,然后发布:在浏览器下输入:
http://localhost:8080/项目/test.do
13、如果跳转到showtest.jsp页面。,并且显示学生部分信息证明struts引 入成功,于此同时,ssh整合将大功告成。