前言:从这篇博客開始我将继续讲述Java教程:SSH篇。主要内容环绕SSH框架分析与搭建,今天先简介一下SSH的配置。

SSH配置顺序是: spring-->hibernate-->struts

1. 建立web-project ,并加入Spring支持,加入JAR包时注意。aop  core web commons等包要载入。然后一直下一步就能够成功加入spring支持;

2. 加入hibernate支持。相同注意包的选择,

下一步中注意,选择加入到spring中(spring configuration file中)

下一步后,选择已经存在的applicationContext.xml中(existing spring configuration file中)

下一步后。加入之前配置好的数据源

下一步后,注意不要创建SessionFactory

完毕hibernate支持的加入

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=SSHDemo">
</property>
<property name="username" value="test"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/ssh/vo/Person.hbm.xml</value>
</list>
</property>
</bean>

3. 生成hibernate的vo类和 .hbm.xml文件,例如以下:配置.hbm.xml文件后,注意检查相应的属性是否和相应的表中的字段相应上:

package com.ssh.vo;

     public class Person implements java.io.Serializable {

        // Fields

         private Integer id;
private String name;
private String password; 对应属性的setter 和 getter 方法 } .hbm.xml <hibernate-mapping>
<class name="com.ssh.vo.Person" table="Person" schema="dbo" catalog="SSHDemo">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="50" />
</property>
</class>
</hibernate-mapping>

再创建一个dao类

 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

    import com.ssh.vo.Person;

    public class PersonDAO extends HibernateDaoSupport {
public void insert(Person per){
this.getSession().save(per);
this.getSession().beginTransaction().commit();
}
}

4. 再配置applicationContext.xml文件。须要为hibernateDaoSupport配置HibernateTemplate的支持。而HibernateTemplate的支持又是靠的是sessionFactory(这个是配置第2步骤中自己主动生成好的):

<span style="font-size:18px;"><bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean></span>

这样我们就将Spring与hibernate整合好了。

5. 再将Spring配置好的hibernateTemplate注入到之前定义好的PersonDAOImpl中:

<span style="font-size:18px;">     <bean id="personDao" class="com.ssh.dao.PersonDAOImpl">
<property name="hibernateTemplate"> //这个属性在PersonDAOImpl中有的
<ref bean="hibernateTemplate"/>
</property>
</bean></span>

以上的配置就能够非常好的正好Spring与hibernate,可是大家还须要測试一下是否成功。測试代码例如以下:

<span style="font-size:18px;">public class test {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
PersonDAOImpl pdi = (PersonDAOImpl)app.getBean("personDao");
Person p = new Person();
p.setName("jack");
p.setPassword("123456"); pdi.insert(p);
}
}</span>

測试的过程中可能会出错,错误多半都是因为你的Jar包版本号低或是反复导入等原因导致,所以认真检查

6. 加入struts的配置:首先加入sturts支持,生成web.xml文件。需配置web.xml文件,配置例如以下:

<span style="font-size:18px;"><context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param> <servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet></span>

7. 加入struts的form bean  和 action bean   (form bean 正常写就能够)。action bean 中配置例如以下:

 public class PersonAction extends DispatchAction {

             private PersonDAOImpl personDaoImpl;

             public PersonDAOImpl getPersonDaoImpl() {
return personDaoImpl;
}
public void setPersonDaoImpl(PersonDAOImpl personDaoImpl) {
this.personDaoImpl = personDaoImpl;
}
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
PersonForm personForm = (PersonForm) form;// TODO Auto-generated method stub
Person per = new Person() ;
per.setName(personForm.getName()) ;
per.setPassword(personForm.getPassword()) ;
personDaoImpl.insert(per) ;
return null;
}
}

8.  配置Struts-config.xml文件:加入 struts 的 plug-in

 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>

再加入:

        <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>

以上两个配置就是为了完毕Spring与struts的集成

9. 最后再配置applicationContext.xml文件,让Spring注入到action bean 中 :

                <bean name="/person"  //此处不再是id。而是name 后面的值是 struts-config.xml中 <action-mapping>中<action>的path 的值
class="com.ssh.struts.action.PersonAction">
<property name="personDaoImpl">
<ref bean="personDao"/>
</property>
</bean>

10.加入測试页面,进行測试。

OK,測试成功,配置完毕了!

java教程(五)SSH框架-配置的更多相关文章

  1. 基于java代码的Spring-mvc框架配置

     Spring 版本 4.3.2   maven项目 1.首先上项目目录图,主要用到的配置文件,略去css和js的文件 引包: 2.主要代码: (1)NetpageWebAppInitializer类 ...

  2. ssh框架配置过程

    1.pom.xml配置依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  3. SSH框架配置

    --------------------------------applicationContext.xml-------------------------------- <?xml vers ...

  4. SSH框架配置释义

      创建一个bean, 依赖注入支持的不同注入方式及具体配置方法 属性注入 通过setter()方法注入bean的属性或者依赖对象.属性注入要求bean需要提供一个默认构造函数和对应的setter方法 ...

  5. ssh框架配置数据源 数据库连接没有正常释放

    通过多天的改bug 对数据源这个东西了解多了..    我发现 spring+hibernate下  申请数据库连接是在一个action方法内  也就是说  action 里面有三个 service方 ...

  6. ssh框架配置事务管理器

    http://blog.163.com/zsq303288862@126/blog/static/9374596120111182446727/

  7. 用一天的时间学习Java EE中的SSH框架

    首先说明一下,本人目前主要从事.NET领域的工作,但对于C++.Java.OC等语言也略知一二,周末闲来无事,特花费一天的时间学习了一下Java中的SSH框架,希望把学习过程中的心得体会与园友们进行分 ...

  8. MVC+Spring.NET+NHibernate .NET SSH框架整合

    在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MVC框架以后太灵活了(相比之前的web Form),嗯,关于.NET中的MVC框架我 ...

  9. MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    MVC+Spring.NET+NHibernate .NET SSH框架整合   在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...

随机推荐

  1. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  2. ZOJ 2702 Unrhymable Rhymes

    Unrhymable Rhymes Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu De ...

  3. Java8 Lamdba表达式 002

    本篇将讲述lamdba表达式的排序,本例包括一个Player对象的集合[稍后定义],通过每一个player的分数高低对列表的player进行排序.类定义001例如以下 public class Sor ...

  4. poj 2337 Catenyms 【欧拉路径】

    题目链接:http://poj.org/problem?id=2337 题意:给定一些单词,假设一个单词的尾字母与还有一个的首字母同样则能够连接.问能否够每一个单词用一次,将全部单词连接,能够则输出字 ...

  5. Android组件系列----ContentProvider内容提供者【1】

    [正文] 一.ContentProvider简单介绍: ContentProvider内容提供者(四大组件之中的一个)主要用于在不同的应用程序之间实现数据共享的功能. ContentProvider能 ...

  6. 各大CMS系统优缺点(2017)

    各大CMS系统优缺点(2017) 总结 WordPress之前用过,可能需要再完整的用一个才会比较了解. 从2015年各行业建站规模来看,还有一大批人想自己搭建网站,下面为大家盘点一下比较实用CMS系 ...

  7. MDNS的漏洞报告——mdns的最大问题是允许广域网的mdns单播查询,这会暴露设备信息,或者被利用用于dns放大攻击

    Vulnerability Note VU#550620 Multicast DNS (mDNS) implementations may respond to unicast queries ori ...

  8. 关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能..."的解决办法

    由于Windows系统的VMware出了一些问题,索性就不用VM了,直接装上双系统好了.但是在最后安装时出现错误提示“分配到/的分区/dev/sdc1开始于3584字节,使用磁盘的最小对齐,这可能造成 ...

  9. matplotlib 可视化 —— 定制 matplotlib

    1. matplotlibrc 文件 matplotlib使用matplotlibrc [matplotlib resource configurations] 配置文件来自定义各种属性,我们称之为 ...

  10. Find and counter

    Find: In a sense, find is the opposite of the [] operator. Instead of taking an index and extracting ...