基于maven的ssh框架一步一步搭建(一)
生活随笔
收集整理的這篇文章主要介紹了
基于maven的ssh框架一步一步搭建(一)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、新建maven項(xiàng)目,配置ssh框架pom的最低支持
1、新建一個maven項(xiàng)目?
2、添加一個web.xml
?
?| 1 2 3 4 5 6 7 8 9 | <?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"?xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" ????xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" ????id="WebApp_ID"?version="2.5"> ????<display-name>limanman</display-name> </web-app> |
?
?
?
3、基本ssh框架pom.xml配置
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | <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>com.winssage.fengshu</groupId> ??<artifactId>winssage</artifactId> ??<version>0.0.1-SNAPSHOT</version> ??<packaging>war</packaging> ??<name>winssage</name> ??<url>http://maven.apache.org</url> ??<properties> ????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> ??</properties> ??<dependencies> ????<dependency> ??????<groupId>junit</groupId> ??????<artifactId>junit</artifactId> ??????<version>4.10</version> ??????<scope>test</scope> ????</dependency> ?????<!--?添加SSH依賴?-->?? ????<!--?Struts2?-->?? ????<dependency>?? ????????<groupId>org.apache.struts</groupId>?? ????????<artifactId>struts2-core</artifactId>?? ????????<version>2.3.1</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.apache.struts</groupId>?? ????????<artifactId>struts2-spring-plugin</artifactId>?? ????????<version>2.3.1</version>?? ????</dependency>?? ??????? ??????? ?????<!--?添加Hibernate依賴?-->?? ????<dependency>?? ????????<groupId>org.hibernate</groupId>?? ????????<artifactId>hibernate-core</artifactId>?? ????????<version>3.6.5.Final</version>?? ????</dependency>?? ????<dependency>?? ????????<groupId>commons-dbcp</groupId>?? ????????<artifactId>commons-dbcp</artifactId>?? ????????<version>1.4</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>?? ??????? ????<!--?添加javassist?-->?? ????<dependency>?? ????????<groupId>javassist</groupId>?? ????????<artifactId>javassist</artifactId>?? ????????<version>3.11.0.GA</version>?? ????</dependency>?? ??????? ????<!--?添加Spring依賴?-->?? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-core</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-beans</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-context</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-jdbc</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-orm</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ????<dependency>?? ????????<groupId>org.springframework</groupId>?? ????????<artifactId>spring-web</artifactId>?? ????????<version>3.1.1.RELEASE</version>?? ????</dependency>?? ??????? ??</dependencies> </project> |
?
?
二、maven webproject 整合struts2
1、web.xml 加入中心攔截器配置
?
?
?
?| 1 2 3 4 5 6 7 8 9 | <filter> ????????<filter-name>struts2</filter-name> ????????<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> ????</filter> ????<filter-mapping> ????????<filter-name>struts2</filter-name> ????????<url-pattern>/*</url-pattern> ????</filter-mapping> |
?
?
?
2、加入log4j.xml
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?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 根據(jù)約定由于配置原則,將此配置文件放在更目錄即可
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xml?version="1.0"?encoding="UTF-8"??> <!DOCTYPE?struts?PUBLIC ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN" ????"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> ????<package?name="fengshu"?namespace="/user"?extends="struts-default"> ????????<!--<action?name="user" ????????????class="com.fengshu.limanman.winssage.controller.LoginController"> ????????????<result?name="success">/pages/index.jsp</result> ????????</action>--> ????</package> </struts> |
?
?
?
4、建一個測試jsp在webapp/pages/index.jsp
?
?| 1 2 3 4 5 6 7 8 9 10 11 | <%@?page?language="java"?contentType="text/html;?charset=utf-8" ????pageEncoding="utf-8"%> <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"> <title>Insert?title?here</title> </head> <body>hello?limanman </body> </html> |
?
?
?
5、寫一個controller
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package?com.fengshu.limanman.controller; import?org.apache.log4j.Logger; import?com.opensymphony.xwork2.ActionSupport; public?class?LoginController?extends?ActionSupport?{ ????private?static?final?long?serialVersionUID?=?1L; ????private?Logger?log=Logger.getLogger(this.getClass()); ????? ????public?String??login()?{ ????????log.info("hello??i?am?limanman"); ????????return?"succerss"; ????????? ????} } |
?
?
?
6、配置struts2.xml
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 | <?xml?version="1.0"?encoding="UTF-8"??> <!DOCTYPE?struts?PUBLIC ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN" ????"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> ????<package?name="fengshu"?namespace="/"?extends="struts-default"> ????????<action?name="user"?class="com.fengshu.limanman.controller.LoginController"> ????????????<result?name="success">/pages/index.jsp</result> ????????</action> ????</package> </struts> |
?
?
7、暫時注釋掉pom.xml中的struts2-spring-plugin
因?yàn)檫€沒有整合spring,如果加入struts2-spring-plugin將會報空指針異常,整合spring后需要加入此jar包,下面將不再提及。
?
8、配置jetty運(yùn)行環(huán)境,開發(fā)的時候我們一般使用jetty服務(wù)器,而不用tomcat
在pom.xml中加入jetty插件,并且配置根目錄目錄
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <build> ????????<plugins> ????????????<!--?配置加入jetty服務(wù)器,開發(fā)時我們一般使用jetty服務(wù)器?--> ????????????<plugin> ????????????????<groupId>org.mortbay.jetty</groupId> ????????????????<artifactId>jetty-maven-plugin</artifactId> ????????????????<configuration> ????????????????????<!--?設(shè)置掃描target/classes內(nèi)部文件變化時間間隔?--> ????????????????????<scanIntervalSeconds>2</scanIntervalSeconds> ????????????????????<webApp> ????????????????????????<contextPath>/limanman</contextPath> ????????????????????</webApp> ????????????????</configuration> ????????????</plugin> ????????????<!--?compiler插件,?設(shè)定JDK版本?--> ????????????<plugin> ????????????????<groupId>org.apache.maven.plugins</groupId> ????????????????<artifactId>maven-compiler-plugin</artifactId> ????????????????<version>3.0</version> ????????????????<configuration> ????????????????????<source>1.6</source> ????????????????????<target>1.6</target> ????????????????????<showWarnings>true</showWarnings> ????????????????</configuration> ????????????</plugin> ????????????<!--?war打包插件,?設(shè)定war包名稱不帶版本號?--> ????????????<plugin> ????????????????<groupId>org.apache.maven.plugins</groupId> ????????????????<artifactId>maven-war-plugin</artifactId> ????????????????<version>2.3</version> ????????????????<configuration> ????????????????????<warName>winssage</warName> ????????????????</configuration> ????????????</plugin> ????????????<!--?eclipse插件,?設(shè)定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> |
?
?
?
9、第一個里程碑,第一次運(yùn)行項(xiàng)目
(1)jetty:run -Djetty.port=9080 -Dmaven.test.skip=true 跑起項(xiàng)目
(2)效果截圖
三、將spring 整合進(jìn)來
1、web.xml加入spring監(jiān)聽
?
?| 1 2 3 4 5 6 7 8 | <context-param> ????????<param-name>contextConfigLocation</param-name> ????????<param-value>classpath*:META-INF/spring/ApplicationContext.xml</param-value> ????</context-param> ????<!--?Spring?Listener?--> ????<listener> ????????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> ????</listener> |
?
?
?
2、將strut2交給spring管理
(1)修改strut2.xml
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 | <?xml?version="1.0"?encoding="UTF-8"??> <!DOCTYPE?struts?PUBLIC ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN" ????"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> ????<package?name="fengshu"?namespace="/"?extends="struts-default"> ????????<action?name="user"?class="loginController"> ????????????<result?name="success">/pages/index.jsp</result> ????????</action> ????</package> </struts> |
?
?
?
(2)添加spring配置文件
?
?
?| 1 2 | ?<bean?id="loginController"?class="com.fengshu.limanman.controller.LoginController"> ????</bean> |
?
(3)運(yùn)行 it is aok!
四、spring再整合hibernate?
1、加入datasource
?
?| 1 2 3 4 5 6 7 8 | <bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource"> ????????<property?name="driverClassName"?value="com.mysql.jdbc.Driver"> ????????</property> ????????<property?name="url"?value="jdbc:mysql://localhost:3306/ddd"> ????????</property> ????????<property?name="username"?value="root"></property> ????????<property?name="password"?value="root"></property> ????</bean> |
?
?
?
2、加入sessionFactory
?
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <bean?id="sessionFactory" ????????class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> ????????<property?name="dataSource"> ????????????<ref?bean="dataSource"?/> ????????</property> ????????<property?name="annotatedClasses"> ????????????<list> ????????????????<value>com.winssage.bslogic.core.User</value> ????????????</list> ????????</property> ????????<property?name="hibernateProperties"> ????????????<props> ????????????????<prop?key="hibernate.dialect"> ????????????????????org.hibernate.dialect.Mysql5Dialect ????????????????</prop> ????????????????<prop?key="hibernate.show_sql">true</prop> ????????????????<prop?key="hibernate.hbm2ddl.auto">update</prop> ????????????</props> ????????</property> ????</bean> |
?
?
?
?
3、運(yùn)行項(xiàng)目后報錯?
經(jīng)檢查發(fā)現(xiàn)是因?yàn)闆]有mysql驅(qū)動,也沒有hibernate-anation 包
給改hibernate pom.xml 配置
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <!--?添加Hibernate依賴?--> ????????<dependency> ????????????<groupId>org.hibernate</groupId> ????????????<artifactId>hibernate</artifactId> ????????????<version>3.2.6.ga</version> ????????????<type>jar</type> ????????????<scope>compile</scope> ????????????<exclusions> ????????????????<exclusion> ????????????????????<artifactId>jta</artifactId> ????????????????????<groupId>javax.transaction</groupId> ????????????????</exclusion> ????????????</exclusions> ????????</dependency> ????????<dependency> ????????????<groupId>org.hibernate</groupId> ????????????<artifactId>hibernate-annotations</artifactId> ????????????<version>3.2.0.ga</version> ????????????<type>jar</type> ????????????<scope>compile</scope> ????????</dependency> ????????<dependency> ????????????<groupId>org.hibernate</groupId> ????????????<artifactId>ejb3-persistence</artifactId> ????????????<version>1.0.0</version> ????????</dependency> ????????? <dependency> ????????<groupId>mysql</groupId> ????????<artifactId>mysql-connector-java</artifactId> ????????<version>5.0.5</version> </dependency> |
?
?
?
4、再次啟動?
?
已自動更新了表,注意應(yīng)該講hibernate.hbm2ddl.auto設(shè)置為create才能自動創(chuàng)建表
到此hibernate已經(jīng)成功添加進(jìn)來?
?
http://my.oschina.net/fengshuzi/blog/291421
?
總結(jié)
以上是生活随笔為你收集整理的基于maven的ssh框架一步一步搭建(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server 2008空间数据应
- 下一篇: hdu 1263 水果