1.1下载

软件:

maven:3.3.9。jdk:1.7 ,Struts2:2.3.24.1,Hibernate:4.3.6,Spring:4.2.5,mysql:5.1.34,Junit:4,Myeclipse:2014;

源代码下载:https://github.com/fansy1990/ssh_v3 

1. 构建Mavenproject

1.1 Maven 设置:

选择Maven的本地路径:
Window -》 Preference -> Maven4Myeclipse

改动setting.xml(视情况改动。先能够不改动,假设下载jar包下载有问题时,再改)
<mirror>

        <id>nexus-osc</id>

        <mirrorOf>*</mirrorOf>

        <name>Nexus osc</name>

        <url>http://maven.oschina.net/content/groups/public/</url>
    </mirror>
设置为开源中国的资源库。这样下载快

1.2 JDK设置: 

新加入jdk,同一时候加入 Default VM Arguments: -Dmaven.multiModuleProjectDirectory=$M2_HOME

1.3 新建Mavenproject

1)File -> New -> Project -> Maven Project 
 
2)选择webapp  catalog

3)设置 group id 和artifact id:

建好的project例如以下(上面起名改为v3。而非v2):


2. 加入Web支持

1) 右键project:Myeclipse -> Project Facets[Capabilities] -> Install Dynamic Web Module ;


不用加入tomcat的lib包到projectclasspath中;


加入后的project例如以下:



3. 加入Struts2、Hibernate、Spring

3.1 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>ssh</groupId>
	<artifactId>v2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>v2</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.2.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.2.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.2.5.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>4.2.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>4.2.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.6.Final</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.3.24.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.3.24.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-junit-plugin</artifactId>
			<version>2.3.24.1</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>

			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
					
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

	</dependencies>
</project>


3.2 web.xml:

<?

xml version="1.0" encoding="UTF-8"?

> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>v3</display-name> <display-name>Struts </display-name> <!-- 加入对spring的支持 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 当hibernate+spring配合使用的时候。假设设置了lazy=true,那么在读取数据的时候。当读取了父数据后。 hibernate会自己主动关闭session,这样,当要使用子数据的时候,系统会抛出lazyinit的错误, 这时就须要使用spring提供的 OpenSessionInView,OpenSessionInView主要是保持Session状态 知道request将所有页面发送到client,这样就能够解决延迟载入带来的问题 --> <filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 加入对struts2的支持 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>



3.3 加入resource文件夹(source),并改动输出文件夹:



拷贝以下的文件到resource文件夹:
struts.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> <constant name="struts.devMode" value="true" /> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <!--设置编码形式为UTF-8--> <constant name="struts.i18n.encoding" value="UTF-8"/> <!-- 加入spring管理 --> <constant name="struts.objectFactory" value="spring"/> <!-- 加入test action測试 --> <package name="test" extends="struts-default" namespace="/test"> <action name="user" class="demo.action.UserAction"> <result>/success.jsp</result> </action> </package> </struts>



applicationContext.xml:
<?

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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 自己主动载入Annotation bean --> <context:annotation-config /> <context:component-scan base-package="demo" /> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="classpath:jdbc.properties" /> </bean> <!-- 配置dbcp数据源 --> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- Hibernate 4 SessionFactory Bean definition --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自己主动扫描注解方式配置的hibernate类文件 --> <property name="packagesToScan"> <list> <value>demo.model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <!-- <prop key="hibernate.current_session_context_class">thread</prop> --> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <!-- <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> --> <!-- <tx:annotation-driven transaction-manager="txManager" /> --> <!-- 配置事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 配置事务切面 --> <aop:config > <aop:pointcut id="defaultServiceOperation" expression="execution(public * demo.service.*Service.*(..))" /> <aop:advisor pointcut-ref="defaultServiceOperation" advice-ref="defaultTxAdvice" /> </aop:config> <tx:advice id="defaultTxAdvice" transaction-manager="txManager"> <tx:attributes> <!-- 先暂定所有方法都加事务 --> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> </beans>




jdbc.properties:(依据实际情况改动)
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=root
jdbc.password=root
log4j.properties:
log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


3.4 把maven jar包加入到lib中:

右键project-> properties -> myeclipse -> Deployment Assembly 


做好上面的步骤后。其project文件夹例如以下:


4. 编程測试

1. 加入相应測试程序:

2. 在以下地址下载源代码: https://github.com/fansy1990/ssh_v3 

3. 直接执行 Maven install 就可以測试。结果例如以下:


4. 部署tomcat:
浏览器訪问:http://localhost:8080/v3/index.jsp,点击addUser,查看数据库中是否有相应数据插入;








5. 异常

5.1  java.lang.IllegalStateException: Failed to load ApplicationContext

1) 加入source 文件夹: src/test/resource ,并把src/main/resource文件夹中的文件拷贝过来;
2)改动src/test/resource ,src/test/java的输出为target/classes文件夹。




分享。成长,快乐

脚踏实地,专注

转载请注明blog地址:http://blog.csdn.net/fansy1990


posted on 2018-01-12 01:44  yjbjingcha  阅读(168)  评论(0编辑  收藏  举报

导航