SSHM
SSHM
一:
1、建数据库
2、建maven项目
3、添加web.xml:新建一个web项目,默认生成web.xml复制过来 再删除web项目。
4、基本ssh框架pom.xml配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.2.4.RELEASE</spring.version>
<struts2.version>2.3.15.1</struts2.version>
<Hibernate .version>4.3.11.Final</Hibernate .version>
</properties>
<!-- struts2依赖 -->
<dependency >
<groupId >org.apache.struts </groupId>
<artifactId >struts2-core </artifactId>
<version >${struts2.version} </version>
</dependency >
<!-- 添加Log4J依赖 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.6.4</version>
</dependency>
添加Log4J(日志)、SSH依赖。
Javassist是一个开源的分析、编辑和创建Java
字节码的类库
二:maven webproject 整合struts2
1、web.xml 加入中心拦截器配置
编辑web应用的web.xml配置文件,配置struts2的核心Filter,这个可以从Struts2官网(http://struts.apache.org/development/2.x/docs/webxml.html)找到示例。
2前面我们提到Maven构建web项目时资源文件存放在src/main/resources目录下,但是Struts2的配置文件struts.xml默认要放在类路径下,也就是src下。
这个位置可以修改(http://www.cnblogs.com/surge/p/3581954.html),就是在web.xml中的struts2的<filter>里加入以下内容:
<init-param>
<param-name>config</param-name>
<param-value>../../resources/struts.xml</param-value>
</init-param>
配置完成后web.xml内容如下:
- <!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
-
- <web-app>
- <display-name></display-name>
-
-
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- </filter-class>
-
- <init-param>
- <param-name>config</param-name>
- <param-value>../../resources/struts.xml</param-value>
- </init-param>
-
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <welcome-file-list>
- <welcome-file>login.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
2、加入log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//Apache//DTD Log4j 1.2//EN"
"http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd">
<log4j:configuration>
<appender class="org.apache.log4j.ConsoleAppender" name="RootConsoleAppender">
<param name="Threshold" value="debug" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
</layout>
</appender>
<category name="com.fengshu.limanman.winssage">
<priority value="debug" />
</category>
<category name="org.springframework">
<priority value="warn" />
</category>
<category name="org.hibernate">
<priority value="warn" />
</category>
<category name="org.dbunit">
<priority value="warn" />
</category>
<category name="com.mchange.v2">
<priority value="warn" />
</category>
<category name="org.apache">
<priority value="warn" />
</category>
<category name="org.logicalcobwebs">
<priority value="warn" />
</category>
<category name="com.opensymphony">
<priority value="warn" />
</category>
<root>
<level value="info" />
<appender-ref ref="RootConsoleAppender" />
</root>
</log4j:configuration>
3、引入struts2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 所有匹配*.do的请求都由struts2处理 -->
<constant name="struts.action.extension" value="do" />
<constant name="struts.i18n.reload" value="false" />
<constant name="struts.devMode" value="false" />
<include file="struts-default.xml" />
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="com.carson.demo.action.UserAction" method="login"> <result name="success">index.jsp</result>
<result name="login">login.jsp</result>
</action>
</package>
</struts>
(暂时注释掉pom.xml中的struts2-spring-plugin
因为还没有整合spring,如果加入struts2-spring-plugin将会报空指针异常,整合spring后需要加入此jar包,下面将不再提及。)
使用struts2注解在pom.xml里配置:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
4、配置jetty运行环境:在pom.xml中加入jetty插件,并且配置根目录目
<build>
<plugins>
<!-- 配置加入jetty服务器,开发时我们一般使用 jetty服务器 -->
<plugin>
<groupId> org.mortbay.jetty</groupId >
<artifactId> jetty-maven-plugin</artifactId >
<configuration>
<!-- 设置扫描target/classes内部文件变化时间间隔 -->
<scanIntervalSeconds> 2</ scanIntervalSeconds>
<webApp>
<contextPath> /*</ contextPath>
</webApp>
</configuration>
</plugin>
<!-- compiler插件, 设定JDK版本 -->
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-compiler-plugin</artifactId>
<version> 3.0</ version>
<configuration>
<source> 1.8</ source>
<target> 1.8</ target>
<showWarnings> true</ showWarnings>
</configuration>
</plugin>
<!-- war打包插件, 设定war包名称不带版本号 -->
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-war-plugin</artifactId>
<version> 2.3</ version>
<configuration>
<warName> winssage</ warName>
</configuration>
</plugin>
<!-- eclipse插件, 设定 wtp版本 -->
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-eclipse-plugin</artifactId>
<version> 2.9</ version>
<configuration>
<downloadSources> true</ downloadSources>
<downloadJavadocs> false</ downloadJavadocs>
<wtpversion> 2.0</ wtpversion>
</configuration>
</plugin>
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-dependency-plugin</artifactId>
<executions>
<execution>
<id> install</ id>
<phase> install</ phase>
<goals>
<goal> sources</ goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 用于支持跨模块加载配置文件 -->
<plugin>
<groupId> org.apache.maven.plugins</groupId >
<artifactId> maven-resources-plugin</artifactId>
<version> 2.5</ version>
<configuration>
<encoding> UTF-8</ encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension> dll</ nonFilteredFileExtension>
<nonFilteredFileExtension> so</ nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build >
三、整合spring
1、在pom.xml 加入spring依赖
<!-- 添加Spring依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
2、web.xml加入spring监听
<!-- spring路径 -->
<context-param>
<param-name>contextConfigLocation </param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- Spring Listener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、添加spring配置文件 applicationContext.xml 在spring里配置bean,把bean转给spring管理
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<bean id="loginController" class="test.t1.user.action.LoginController">
</bean>
</beans>
Struts.xml:
<package name="test" namespace="/" extends="struts-default">
<action name="user" class="loginController">
<result name="success">/jsp/index.jsp</result>
</action>
</package>
strust2整合spring时要在pom.xml中的加入struts2-spring-plugin,在运行项目测试
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
四、spring再整合hibernate
1、在pom.xml 加入hibernate、mysql依赖
<!--添加Hibernate依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${Hibernate.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- 添加mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
2、建立Hibenate.properties 属性配置文件
3、建立spring-hibernate.xml文件
4、在web.xml 加入spring-hibernate.xml

5、在applicationContext.xml 加入Hibenate.properties 属性配置文件,并加入spring-hibernate.xml内容,并bean配置改为扫描注解文件:

6、写model\dao\service\action 并配置注解
1)用sessionFactory.getCurrentSession()遇到问题:
org.hibernate.HibernateException: Could not obtain transaction-synchronized
解决:在applicationContext.xml中配置事物:
<!-- 配置事务管理器 -->
<bean name="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 注解方式配置事物 -->
<tx:annotation-driven transaction-manager="transactionManager" />
并在DAO实现类上标注:@Transactional
2)@Resource不能注入
原因:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
被注释 解除注释即可
http://blog.csdn.net/chenleixing/article/details/44353491
导出EXCEL:
自搭建项目笔记Spring+Struts2+Hibernate《一》
原文:http://www.cnblogs.com/qingchun-com/p/6298354.html