java教程(五)SSH框架-配置
前言:从这篇博客開始我将继续讲述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框架-配置的更多相关文章
- 基于java代码的Spring-mvc框架配置
Spring 版本 4.3.2 maven项目 1.首先上项目目录图,主要用到的配置文件,略去css和js的文件 引包: 2.主要代码: (1)NetpageWebAppInitializer类 ...
- ssh框架配置过程
1.pom.xml配置依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- SSH框架配置
--------------------------------applicationContext.xml-------------------------------- <?xml vers ...
- SSH框架配置释义
创建一个bean, 依赖注入支持的不同注入方式及具体配置方法 属性注入 通过setter()方法注入bean的属性或者依赖对象.属性注入要求bean需要提供一个默认构造函数和对应的setter方法 ...
- ssh框架配置数据源 数据库连接没有正常释放
通过多天的改bug 对数据源这个东西了解多了.. 我发现 spring+hibernate下 申请数据库连接是在一个action方法内 也就是说 action 里面有三个 service方 ...
- ssh框架配置事务管理器
http://blog.163.com/zsq303288862@126/blog/static/9374596120111182446727/
- 用一天的时间学习Java EE中的SSH框架
首先说明一下,本人目前主要从事.NET领域的工作,但对于C++.Java.OC等语言也略知一二,周末闲来无事,特花费一天的时间学习了一下Java中的SSH框架,希望把学习过程中的心得体会与园友们进行分 ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合
在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MVC框架以后太灵活了(相比之前的web Form),嗯,关于.NET中的MVC框架我 ...
- 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 ...
随机推荐
- 系统出现0x0000006B蓝屏修复,系统文件损坏 bootcat.cache、driver.stl
系统蓝屏,无论如何都不能进入系统,所以你需要一个U盘启动器,就是能绕过电脑的系统进入电脑,可以用U盘做一个U盘启动器,或者其他方法均可以,只要能进入到你的电脑访问C盘即可 2 下载链接内的文件解压后放 ...
- HDU-3746 Cyclic Nacklace 字符串匹配 KMP算法 求最小循环节
题目链接:https://cn.vjudge.net/problem/HDU-3746 题意 给一串珠子,我们可以在珠子的最右端或最左端加一些珠子 问做一条包含循环珠子的项链,最少还需要多少珠子 思路 ...
- luogu P3414 SAC#1 - 组合数(组合数学)
题意 求sigma(C(n,i))其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数. 由于答案可能很大,请输出答案对6662333的余数. (n<=101 ...
- 仿射变换(Affine Transformation)
转自:https://www.cnblogs.com/bnuvincent/p/6691189.html http://www.cnblogs.com/ghj1976/p/5199086.html 变 ...
- Jtester使用
1.在Jtester中使用DataMap 为什么要使用DataMap? 早先的jTester中提供了dbFit方式来准备和验证数据库数据,应该来说,这个工具解决了很多问题.实际使用过程中,开发同学反映 ...
- 紫书 习题 11-9 UVa 12549 (二分图最小点覆盖)
用到了二分图的一些性质, 最大匹配数=最小点覆盖 貌似在白书上有讲 还不是很懂, 自己看着别人的博客用网络流写了一遍 反正以后学白书应该会系统学二分图的,紫书上没讲深. 目前就这样吧. #includ ...
- Mysql学习总结(29)——MySQL中CHAR和VARCHAR
MySQL数据库的字符(串)类不要以为字符类型就是CHAR,CHAR和VARCHAR的区别在于CHAR是固定长度,只要你定义一个字段是CHAR(10),那么不论你存储的数据是否达到了10个字节,它都要 ...
- Android干货大放送:书籍、教程、工具各种全
最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门 <Learning Android(中文版) ...
- [MST] Use Volatile State and Lifecycle Methods to Manage Private State
MST has a pretty unique feature: It allows you to capture private state on models, and manage this s ...
- [JAVA · 0基础]:3.转义字符
定义 全部的ASCII码都能够用"\"加数字(通常是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\ ...