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 ...
随机推荐
- VC++ 借助 Win32 API 绘图实现基本的细胞自动机演示
//本程序使用 Visual Studio 2015 生成的 Win32 窗口程序模板 开发//使用 Win32 API 绘图//实现基本的细胞自动机演示////目前已知问题://存在内存泄漏,但具体 ...
- 搭建ss总结
今天晚上做的事情: 1. https://www.vultr.com/ 购买vps 2. ssh连接到服务器 参照网上帖子安装 https://blog.csdn.net/littlepig19930 ...
- NOIp模拟赛三十一
持续降智 分数:100+0+0=100 C题subtask是假的,根本没有部分分中的情况...还我20分QAQ A:[BZOJ4444]国旗计划 B:[agc006f]blackout C:[arc0 ...
- 理解Swift中map 和 flatMap对集合的作用
map和flatMap是函数式编程中常见的概念,python等语言中都有.借助于 map和flapMap 函数可以非常轻易地将数组转换成另外一个新数组. map函数可以被数组调用,它接受一个闭包作为參 ...
- [MST] Create Dynamic Types and use Type Composition to Extract Common Functionality
Since MST offers a runtime type system, it can create and compose types on the fly, making it possib ...
- pydev 安装
pydev断断续续空余时间安装了好几天,终于安装上了,需要注意的几点有, 1.插件地址 http://update-production-pydev.s3.amazonaws.com/pydev/up ...
- RISC-V首度被我国列入扶持对象,上海已成RISC-V重要“据点”
时间:2018年7月24日 16:33 摘要:近期,上海市经济信息委发布了<上海市经济信息化委关于开展2018年度第二批上海市软件和集成电路产业发展专项资金(集成电路和电子信息制造领域)项目申报 ...
- django 笔记12 session
第一步写好函数,然后生成数据库session表 python manage.py makemigrations python manage.py migrate session原理: .Session ...
- springboot 注入xml自定义类
新建入口类可扫描类: @Configuration @ImportResource(locations = {"classpath:spring-bean.xml"}) publi ...
- Sqoop框架基础
Sqoop框架基础 本节我们主要需要了解的是大数据的一些协作框架,也是属于Hadoop生态系统或周边的内容,比如: ** 数据转换工具:Sqoop ** 文件收集库框架:Flume ** 任务调度框架 ...