配色: 字号:
SSH框架搭建
2016-03-23 | 阅:  转:  |  分享 
  
SSH框架搭建搭建数据库oracleEclipse搭建工程(搭建ssh框架)创建web项目OA_Project添加jar包/配置xml添加
Junit包Struts2Jar包XMLWeb.xmlr-name>struts2org.apache.struts2.disp
atcher.ng.filter.StrutsPrepareAndExecuteFilter
lter>struts2rn>/struts.xml添加约束文件Struts.xmlmlversion="1.0"encoding="UTF-8"?>cheSoftwareFoundation//DTDStrutsConfiguration2.1.7//EN""http
://struts.apache.org/dtds/struts-2.1.7.dtd">me="struts.custom.i18n.resources"value="org.macpro.alone.web.con
fig.message">CN">ion"value="true"/>e"/>.reload"value="true">me="conststruts.devMode"value="true"/>stantname="struts.multipart.maxSize"value="20971520"/>ion">.ui.theme"value="simple">space="/"extends="struts-default">
HibernateJ
ar包Xmlhibernate.cfg.xmlSpringJar包XmlapplicationContext.xmlversion="1.0"encoding="UTF-8"?>amework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSch
ema-instance"xmlns:context="http://www.springframework.org/schema
/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xml
ns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocatio
n="http://www.springframework.org/schema/mvchttp://www.springfra
mework.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframewor
k.org/schema/beanshttp://www.springframework.org/schema/beans/sp
ring-beans-3.0.xsdhttp://www.springframework.org/schema/contexth
ttp://www.springframework.org/schema/context/spring-context-3.0.x
sdhttp://www.springframework.org/schema/txhttp://www.springframe
work.org/schema/tx/spring-tx-3.0.xsd">t:component-scanbase-package="cn.itcest.oa">scan>整合Struts与spring整合Struts单独配置创建测试类TestActionpackagecn
.itcast.oa.test;importcom.opensymphony.xwork2.ActionSupport;publ
icclassTestActionextendsActionSupport{//privatestatic
finallongserialVersionUID=1L;@OverridepublicStringexecute(
)throwsException{System.out.println("TestAction.execute");retur
n"success";}}添加jsp页面test.jspStruts.xml配置启动tomcat报此错误解决方案网上说用comm
ons-lang3-3.1.jar,用了后真的启动不报错了,但为什么commons-lang-2.5.jar不行呢?原因是comm
ons-lang3-3.1.jar匹配+struts-2.3.20-all.zip;struts-2.3.20-all.zip里
面的commons-lang-2.5.jar不匹配。启动进入index页面说明启动成功!路径问题报404是路径问题!要检查web
.xml中的名称是否跟你jsp的名称一致!Jsp的位置必须放在WebContent下而不是WEB-INF下Struts页面访问说明
Struts的配置成功了!注意:路径后缀名一定要加.actionSpring单独配置创建测试类SpringTestpackage
cn.itcast.oa.test;importorg.junit.Test;importorg.springframewor
k.context.ApplicationContext;importorg.springframework.context.s
upport.ClassPathXmlApplicationContext;publicclassSpringTest{pr
ivateApplicationContextac=newClassPathXmlApplicationContext("
applicationContext.xml");@TestpublicvoidtestBean()throwsExcep
tion{TestActiontestAction=(TestAction)ac.getBean("testAction")
;System.out.println(testAction);}}配置TestAction类注意:@Component泛指组件
,当组件不好归类的时候,我们可以使用这个注解进行标注。@Controller用于标注控制层组件(如struts中的action)
@Service用于标注业务层组件@Repository用于标注数据访问组件,即DAO组件此四个注解都是声明一个bean,只是
生命周期不同applicationContext.xml配置自动扫描路径下的所有类,包括子包下的!测试结果注意spring默认是单
例的配置bean的作用域scope@Scope("prototype")每次getBean都是一个新的实例Struts+Spri
ng整合步骤在web.xml中配置spring的监听器>lns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http:/
/java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web
-app_2_5.xsd"id="WebApp_ID"version="2.5">OA_Projec
t
index.jspme-file>ner>spring监听器org.sprin
gframework.web.context.ContextLoaderListener
stener>contextConfigLocationme>classpath:applicationContext.xml<
/context-param>strut
s2
org.apache.struts2.dispatcher.ng.fi
lter.StrutsPrepareAndExecuteFilter
-mapping>struts2/attern>添加一个jar包struts2-spring-plugin-2
.0.11.2.jar版本可以不一致修改Struts.xmlHibernate与Spring整合Hibernate+Spring
整合管理SessionFactory实例applicationContext.xml文件encoding="UTF-8"?>hema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"x
mlns:context="http://www.springframework.org/schema/context"xmlns
:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://
www.springframework.org/schema/tx"xsi:schemaLocation="http://www.
springframework.org/schema/mvchttp://www.springframework.org/sch
ema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.org/schema/b
eanshttp://www.springframework.org/schema/beans/spring-beans-3.0
.xsdhttp://www.springframework.org/schema/contexthttp://www.spri
ngframework.org/schema/context/spring-context-3.0.xsdhttp://www.s
pringframework.org/schema/txhttp://www.springframework.org/schem
a/tx/spring-tx-3.0.xsd">anbase-package="cn.itcast.oa">h:jdbc.properties"/>tory"class="org.springframework.orm.hibernate3.LocalSessionFacto
ryBean">"value="classpath:hibernate.cfg.xml"/>ertyname="dataSource">edDataSource">}"/>rtyname="user"value="${username}"/>="password"value="${password}"/><
propertyname="maxPoolSize"value="20"/>"value="2"/>ertyname="maxIdleTime"value="60">ment"value="2"/>/>ame="autoCommitOnClose"value="false">cTestTable"value="Test">akAfterAcquireFailure"value="false">alue="60">y>
创建jdbc.properties用于数
据库配置:jdbc.properties文件(此处以oracle为例)driver_class=oracle.jdbc.dri
ver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:ORCLusern
ame=scottpassword=tigerhibernate.cfg.xml文件将内容注掉!sion=''1.0''encoding=''UTF-8''?>BLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN""http://h
ibernate.sourceforge.net/hibernate-configuration-3.0.dtd">nate-configuration>rtyname="show_sql">true
update
configuration>问题及解决方案org.springframework.beans.factory.BeanCreati
onException:Errorcreatingbeanwithname''sessionFactory''defin
edinclasspathresource[applicationContext.xml]:Invocationof
initmethodfailed;nestedexceptionisjava.lang.NoClassDefFoun
dError:org/slf4j/impl/StaticLoggerBinderatorg.springframework.b
eans.factory.support.AbstractAutowireCapableBeanFactory.initializ
eBean(AbstractAutowireCapableBeanFactory.java:1420)atorg.springf
ramework.beans.factory.support.AbstractAutowireCapableBeanFactory
.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)解决方案:其实
就是缺少两个包,一个是slf4j-log4j12-1.5.6.jar、一个是log4j-1.2.14.jar解决方案:可以修改lo
g4j.properties文件的log4j.rootLogger=debug,stdout将debug修改为warn即可.测试
packagecn.itcast.oa.test;importorg.hibernate.SessionFactory;imp
ortorg.junit.Test;importorg.springframework.context.Application
Context;importorg.springframework.context.support.ClassPathXmlAp
plicationContext;publicclassSpringTest{privateApplicationCont
extac=newClassPathXmlApplicationContext("applicationContext.xm
l");/测试SessionFactory@throwsException/@Testpublicvoid
testSessionFactory()throwsException{SessionFactorysessionFact
ory=(SessionFactory)ac.getBean("sessionFactory");System.out.pr
intln(sessionFactory);}}声明式事务管理applicationContext.xml文件ion="1.0"encoding="UTF-8"?>ork.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"xmlns:context="http://www.springframework.org/schema/con
text"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:t
x="http://www.springframework.org/schema/tx"xsi:schemaLocation="h
ttp://www.springframework.org/schema/mvchttp://www.springframewo
rk.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.or
g/schema/beanshttp://www.springframework.org/schema/beans/spring
-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context-3.0.xsdht
tp://www.springframework.org/schema/txhttp://www.springframework
.org/schema/tx/spring-tx-3.0.xsd">mponent-scanbase-package="cn.itcast.oa">>="classpath:jdbc.properties"/>sessionFactory"class="org.springframework.orm.hibernate3.LocalSe
ssionFactoryBean">igLocation"value="classpath:hibernate.cfg.xml"/>.ComboPooledDataSource">iver_class}"/>pertyname="password"value="${password}"/>alPoolSize"value="2"/>/>quireIncrement"value="2"/><
!--重新尝试的时间间隔,默认为:1000毫秒-->lue="1000"/><
propertyname="autoCommitOnClose"value="false">="automaticTestTable"value="Test">name="breakAfterAcquireFailure"value="false">tPeriod"value="60">>value="0">rnate3.HibernateTransactionManager">y"ref="sessionFactory"/>on-manager="txManager"/>创建User类修改映射文件User.hbm.xmlrsion="1.0"encoding="utf-8"?>"-//Hibernate/HibernateMappingDTD3.0//EN""http://hibernate.sou
rceforge.net/hibernate-mapping-3.0.dtd">e="cn.itcast.oa.domain">name="id">ame="name">Hibernate.cfg.
xml文件onfigurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0
//EN""http://hibernate.sourceforge.net/hibernate-configuration-3
.0.dtd">net.sf.hibernate.dialect
.OracleDialecttrue"hdm2ddl.auto">updatee="cn/itcast/oa/domain/User.hbm.xml"/>
nate-configuration>创建TestService注入service注入beanrescource注入事务TransactionalTestService类packagecn.itcast.oa.test;importjavax.annotation.Resource;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.springframework.stereotype.Service;importorg.springframework.transaction.annotation.Transactional;importcn.itcast.oa.domain.User;@ServicepublicclassTestService{@ResourceprivateSessionFactorysessionFactory;@TransactionalpublicvoidsaveTwoUsers(){Sessionsession=sessionFactory.getCurrentSession();session.save(newUser());inti=1/0;session.save(newUser());}}问题及解决方案缺少jar包aopalliance-1.0.jar方言有问题org.hibernate.dialect.OracleDialect配置有问题Xml自动创建的表都为小写,且查询要加引号!自行创建表!测试存在错误时:不存在错误时:测试类:SpringTestpackagecn.itcast.oa.test;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassSpringTest{privateApplicationContextac=newClassPathXmlApplicationContext("applicationContext.xml");//测试事务@TestpublicvoidtestTransaction()throwsException{TestServicetestService=(TestService)ac.getBean("testService");testService.saveTwoUsers();}}
献花(0)
+1
(本文系樱梦雪苹宝首藏)