搭建SSH项目过程


注:http://blog.csdn.net/eson_15/article/details/51277324此文章是根据这个作者的步骤搭建SSH环境时本人遇到的问题,在此作为记录

一、新建dynamic web project

   1.deployment Descriptor ---右键Generate----可以生成web.xml文件等
   2.User Library  : Spring的jar包很多,开发的时候建议将它们分个类,然后依次添加到User Library,方便管理,也一目了然。(build path---add Library---User Library---new-- add external Jars )
!!后来发现使用user Library 这种方式,不会自动copy到项目的lib目录下,这样部署到tomcat上会出现问题。使用网上的解决办法:

右键项目,选择properties,然后选择deployment assembly,在这里,将自己用的到UserLibrary添加进来就OK了,在部署项目的时候,eclipse会将UserLibrary的所有jar包copy到tomcat的项目的lib目录下,这样就可以加载了。---仍然不行 所以最后还是直接拷贝到了lib目录下 使用web libraries


   3. @RunWith(SpringJUnit4ClassRunner.class)  
      @ContextConfiguration(locations="classpath:beans.xml")  测试spring Ioc功能

这一步只做了如下配置:
1)导包spring-4.2.4-core、spring-4.2.4-aop
2)在applicationContext.xml中加入bean的定义

3) junit测试文件

   


4.在applicationContext.xml中配置:dataSource SqlSessionFactory transactionManager



      <!-- com.mchange.v2.c3p0.ComboPooledDataSource类在c3p0-0.9.5.1.jar包的com.mchange.v2.c3p0包中 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource.class">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shop" />
<property name="user" value="root" />
<property name="password" value="123456" />
</bean>
<!-- org.springframework.orm.hibernate4.LocalSessionFactoryBean类在spring-orm-4.2.4.RELEASE. 
jar包的org.springframework.orm.hibernate4包中 -->
<bean id="SqlSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name ="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:hibernate.cfg.xml" /> <!-- 加载hibernate配置文件 -->
</bean>
<!-- org.springframework.orm.hibernate4.HibernateTransactionManager类spring-orm-4.2.4.RELEASE.jar包的org.springframework.orm.hibernate4包中 -->

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="SqlSessionFactory" ref="SqlSessionFactory"/>
</bean>


     在此对比SSM 使用mybatis JPA的配置:

<!-- local development环境 -->
<beans profile="development">
<context:property-placeholder ignore-resource-not-found="true"
location="classpath*:/application.properties,
           classpath*:/application.development.properties" />
<!-- 数据源配置, 使用Tomcat JDBC连接池 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<!-- Connection Info -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

<!-- Connection Pooling Info -->
<property name="maxActive" value="${jdbc.pool.maxActive}" />
<property name="maxIdle" value="${jdbc.pool.maxIdle}" />
<property name="minIdle" value="0" />
<property name="defaultAutoCommit" value="false" />
</bean>


<!-- MyBatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<property name="typeAliasesPackage" value="yitai.common.entity" />
<!-- 显式指定Mapper文件位置 -->
<property name="mapperLocations">
<list>
<value>classpath:/mybatis/*Mapper.xml</value>
<value>classpath:/mybatis/**/*Mapper.xml</value>
</list>
</property>
</bean>

<!-- Jpa Entity Manager 配置 -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="packagesToScan" value="yitai.common.entity"/>
<property name="jpaProperties">
<props>
<!-- 命名规则 My_NAME->MyName -->
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
</props>
</property>
</bean>

<!-- Jpa 事务配置 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>

</bean>


5.仅对struts环境进行测试时,出现问题:struts2启动报错com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
因为引入了struts2-spring-plugin.jar包,
该插件引入工程后,会自动设置Struts的ObjectFactory为StrutsSpringObjectFactory,从而让Spring的IOC容器来托管Struts的Action。所以导致了启动的问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章