第一步:添加相關依賴包前端
各類包,分爲爲:springDI依賴包(最基礎的必備包),AOP相關依賴,springMVC依賴包,servlet及jsp相關依賴,數據庫庫依賴包,mybatis及Mybatis-spring依賴包等,上代碼pom.xmljava
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>com.yusys.pro</groupId> 5 <artifactId>NewsManagement</artifactId> 6 <packaging>war</packaging> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>NewsManagement Maven Webapp</name> 9 <url>http://maven.apache.org</url> 10 <dependencies> 11 <dependency> 12 <groupId>junit</groupId> 13 <artifactId>junit</artifactId> 14 <version>3.8.1</version> 15 <scope>test</scope> 16 </dependency> 17 <!-- <dependency> 18 <groupId>javax.servlet</groupId> 19 <artifactId>javax.servlet-api</artifactId> 20 <version>3.0.1</version> 21 </dependency> --> 22 <!-- sping相關依賴包 --> 23 <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> 24 <dependency> 25 <groupId>commons-logging</groupId> 26 <artifactId>commons-logging</artifactId> 27 <version>1.2</version> 28 </dependency> 29 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> 30 <dependency> 31 <groupId>org.springframework</groupId> 32 <artifactId>spring-context</artifactId> 33 <version>4.3.13.RELEASE</version> 34 </dependency> 35 <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> 36 <dependency> 37 <groupId>org.springframework</groupId> 38 <artifactId>spring-core</artifactId> 39 <version>4.3.13.RELEASE</version> 40 </dependency> 41 <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --> 42 <dependency> 43 <groupId>org.springframework</groupId> 44 <artifactId>spring-beans</artifactId> 45 <version>4.3.13.RELEASE</version> 46 </dependency> 47 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> 48 <dependency> 49 <groupId>org.springframework</groupId> 50 <artifactId>spring-context-support</artifactId> 51 <version>4.3.13.RELEASE</version> 52 </dependency> 53 <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression --> 54 <dependency> 55 <groupId>org.springframework</groupId> 56 <artifactId>spring-expression</artifactId> 57 <version>4.3.13.RELEASE</version> 58 </dependency> 59 <!-- spring AOP 依賴包 --> 60 <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --> 61 <dependency> 62 <groupId>org.springframework</groupId> 63 <artifactId>spring-aspects</artifactId> 64 <version>4.3.13.RELEASE</version> 65 </dependency> 66 67 <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop --> 68 <dependency> 69 <groupId>org.springframework</groupId> 70 <artifactId>spring-aop</artifactId> 71 <version>4.3.13.RELEASE</version> 72 </dependency> 73 <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance --> 74 <dependency> 75 <groupId>aopalliance</groupId> 76 <artifactId>aopalliance</artifactId> 77 <version>1.0</version> 78 </dependency> 79 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --> 80 <dependency> 81 <groupId>org.aspectj</groupId> 82 <artifactId>aspectjweaver</artifactId> 83 <version>1.8.13</version> 84 </dependency> 85 <!-- springMVC依賴包 --> 86 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> 87 <dependency> 88 <groupId>org.springframework</groupId> 89 <artifactId>spring-webmvc</artifactId> 90 <version>4.3.13.RELEASE</version> 91 </dependency> 92 <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> 93 <dependency> 94 <groupId>org.springframework</groupId> 95 <artifactId>spring-web</artifactId> 96 <version>4.3.13.RELEASE</version> 97 </dependency> 98 99 <!-- mybatis依賴包 --> 100 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> 101 <dependency> 102 <groupId>org.mybatis</groupId> 103 <artifactId>mybatis</artifactId> 104 <version>3.4.1</version> 105 </dependency> 106 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> 107 <dependency> 108 <groupId>org.mybatis</groupId> 109 <artifactId>mybatis-spring</artifactId> 110 <version>1.3.0</version> 111 </dependency> 112 113 <!-- servlet及其餘相關依賴 --> 114 <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> 115 <dependency> 116 <groupId>javax.servlet</groupId> 117 <artifactId>javax.servlet-api</artifactId> 118 <version>3.1.0</version> 119 <scope>provided</scope> 120 </dependency> 121 <!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api --> 122 <dependency> 123 <groupId>javax.servlet</groupId> 124 <artifactId>jsp-api</artifactId> 125 <version>2.0</version> 126 <scope>provided</scope> 127 </dependency> 128 <!-- https://mvnrepository.com/artifact/log4j/log4j --> 129 <dependency> 130 <groupId>log4j</groupId> 131 <artifactId>log4j</artifactId> 132 <version>1.2.17</version> 133 </dependency> 134 <!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> 135 <dependency> 136 <groupId>javax.servlet</groupId> 137 <artifactId>jstl</artifactId> 138 <version>1.2</version> 139 </dependency> 140 141 <!-- 數據庫相關依賴包 --> 142 <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> 143 <dependency> 144 <groupId>org.springframework</groupId> 145 <artifactId>spring-jdbc</artifactId> 146 <version>4.3.13.RELEASE</version> 147 </dependency> 148 149 <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --> 150 <dependency> 151 <groupId>commons-dbcp</groupId> 152 <artifactId>commons-dbcp</artifactId> 153 <version>1.4</version> 154 </dependency> 155 156 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 157 <dependency> 158 <groupId>mysql</groupId> 159 <artifactId>mysql-connector-java</artifactId> 160 <version>6.0.6</version> 161 </dependency> 162 163 <!-- 添加redis的jar 包 --> 164 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> 165 <dependency> 166 <groupId>redis.clients</groupId> 167 <artifactId>jedis</artifactId> 168 <version>2.9.0</version> 169 </dependency> 170 171 172 173 </dependencies> 174 175 <build> 176 <plugins> <plugin> <!-- 項目報紅叉,下面子文件沒有一個報紅叉緣由是缺乏插件的配置項 ,jre不能修改爲爲1.7,update後即又重回1.5的緣由--> 177 <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration> 178 </plugin> 179 </plugins> 180 <finalName>NewsManagement</finalName> 181 </build> 182 </project>
第二步,配置幾個基礎文件。應該從web.xml入手。這個是整個web程序的入口,至關於java的main函數,我在實際編碼時並無按照這個順序,這裏爲了邏輯清楚,可以串聯起來,我仍是從這裏提及,上代碼;並將進行相應說明:mysql
一、配置web.xmlweb
1 <?xml version="1.0" encoding="UTF-8"?> 2 <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"> 3 <display-name>OrdersForGoods</display-name> 4 5 <display-name>Archetype Created Web Application</display-name> 6 <!-- 配置監聽器加載上下文參數spring的配置文件 ,這個的做用是當tomcat啓動程序時,首先會監聽,加載相應的配置, 比如是application讀取文件流,構建一個bean工廠,用來爲依賴注入DI作準備--> 7 <context-param> 8 <param-name>contextConfigLocation</param-name> 9 <param-value>classpath:applicationContext-mybatis.xml</param-value> 10 </context-param> 11 <listener> 12 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 13 </listener> 14 <!-- 配置springmvc的servlet ,前端控制器做用就不說了,你們都明白--> 15 <servlet> 16 <servlet-name>springmvc</servlet-name> 注意:這裏的的名字必定要和springMVC的配置文件XXX-servlet.xml中的XXX名字徹底相等,不然報錯 17 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 18 <init-param> 19 <param-name>contextConfigLocation</param-name> 20 <param-value>classpath:springmvc-servlet.xml</param-value> 21 </init-param> 22 <load-on-startup>1</load-on-startup> 23 </servlet> 24 <servlet-mapping> 25 <servlet-name>springmvc</servlet-name> 26 <url-pattern>/</url-pattern><!--這裏用/是根目錄的意思,以前我用/*是有問題的,這二者仍是有區別的,你們自行文度娘--> 27 </servlet-mapping> 28 <!-- 配置過濾器 設置編碼格式--> 29 <filter> 30 <filter-name>encoding</filter-name> 31 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 32 <init-param> 33 <param-name>encoding</param-name> 34 <param-value>utf-8</param-value> 35 </init-param> 36 </filter> 37 <filter-mapping> 38 <filter-name>encoding</filter-name> 39 <url-pattern>/*</url-pattern> 40 </filter-mapping> 41 <!-- 配置log4j日誌的監聽 容器啓動就加載,同加載applicationContext.xml相似--> 42 <context-param> 43 <param-name>log4j</param-name> 44 <param-value>classpath:log4j.properties</param-value> 45 </context-param> 46 <listener> 47 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 48 </listener> 49 </web-app>
二、applicationContext.xmlredis
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:tx="http://www.springframework.org/schema/tx" 7 xmlns:cache="http://www.springframework.org/schema/cache" 8 xmlns:p="http://www.springframework.org/schema/p" 9 xsi:schemaLocation="http://www.springframework.org/schema/beans 10 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 11 http://www.springframework.org/schema/aop 12 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd 13 http://www.springframework.org/schema/context 14 http://www.springframework.org/schema/context/spring-context-4.3.xsd 15 http://www.springframework.org/schema/tx 16 http://www.springframework.org/schema/tx/spring-tx-4.3.xsd 17 http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.3.xsd" 18 > 19 <!-- 加載jdbc屬性文件 --> 20 <context:property-placeholder location="classpath:jdbc.properties"/> 21 <!-- 配置數據源 --> 22 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton"> 23 <property name="driverClassName" value="${jdbc.driver}"/> 24 <property name="url" value="${jdbc.url}"/> 25 <property name="username" value="${jdbc.username}"/> 26 <property name="password" value="${jdbc.password}"/> 27 </bean> 28 <!-- 讓事務註解生效 --> 29 <tx:annotation-driven/> 30 <!--配置事務 --> 31 <bean id="transaction" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 32 <property name="dataSource" ref="dataSource"/> 33 </bean> 34 <!-- 配置mybatis的sqlSessionFactory --> 35 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"> 36 <property name="dataSource" ref="dataSource"/> 37 <property name="configLocation" value="classpath:mybatis-config.xml"/> 38 </bean> 39 <!-- mapper 接口所在包名,spring自動查找下面mapper.xml並生產相應實例,讓接口和xml相關聯 --> 40 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 41 <property name="basePackage" value="com.yusys.dao"/> 42 </bean> 43 44 </beans>
三、springmvc-servlet.xmlspring
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:p="http://www.springframework.org/schema/p" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:mvc="http://www.springframework.org/schema/mvc" 7 xsi:schemaLocation=" 8 http://www.springframework.org/schema/beans 9 http://www.springframework.org/schema/beans/spring-beans.xsd 10 http://www.springframework.org/schema/context 11 http://www.springframework.org/schema/context/spring-context.xsd 12 http://www.springframework.org/schema/mvc 13 http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 14 <!-- 使項目全部註解生效 --> 15 <context:component-scan base-package="com.yusys"/> 16 <!-- 配置視圖解析器 --> 17 <bean id="" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 18 <property name="prefix" value="/WEB-INF/jsp/"/> 19 <property name="suffix" value=".jsp"/> 20 </bean> 21 22 23 24 </beans>
四、mybatis-config.xmlsql
這個文件配置不多,主要是由於在SSM整合中,實際上主要是整合了mybatis,以前由mybatis進行配置的與數據庫的聯繫全交給了spring去作,如數據源、鏈接池、事務等等。這些交給spring之後,當程序須要的時候,就會依賴注入的方式提供給程序用。springmvc主要做用能夠先簡單理解爲調配調用,視圖解析。數據庫
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <settings> 7 <setting name="lazyLoadingEnabled" value="true"/> 8 </settings> 9 <typeAliases> 10 <package name="com.yusys.entity"/> 11 </typeAliases> 12 </configuration>
基礎的配置文件就是這些,至於mapper.xml,屬於dao層的內容,我傾向於將它理解爲java代碼的另外一種特殊存在形式,放在後文進行說明express
第三步、就是編寫代碼了(這裏只是爲了演示說明這個過程,就放一個相關的entity、dao、service、controller,其餘的有興趣的本身添加補充)。apache
一、entity實體類
1 package com.yusys.entity; 2 3 import java.util.Date; 4 5 public class NewsDetail { 6 7 private int id; 8 private String title; 9 private String summary; 10 private String author; 11 private Date createdate; 12 public int getId() { 13 return id; 14 } 15 public void setId(int id) { 16 this.id = id; 17 } 18 public String getTitle() { 19 return title; 20 } 21 public void setTitle(String title) { 22 this.title = title; 23 } 24 public String getSummary() { 25 return summary; 26 } 27 public void setSummary(String summary) { 28 this.summary = summary; 29 } 30 public String getAuthor() { 31 return author; 32 } 33 public void setAuthor(String author) { 34 this.author = author; 35 } 36 public Date getCreatedate() { 37 return createdate; 38 } 39 public void setCreatedate(Date createdate) { 40 this.createdate = createdate; 41 } 42 43 }
二、dao層
1 package com.yusys.dao; 2 3 import java.util.List; 4 5 import com.yusys.entity.NewsDetail; 6 7 public interface NewsDetailMapper { 8 9 public List<NewsDetail> getAll(); 10 11 public List<NewsDetail> getNewsDetailByTitle(); 12 }
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.yusys.dao.NewsDetailMapper"> 5 <select id="getAll" resultType="NewsDetail"> 6 select * from news_detail 7 </select> 8 <select id="getNewsDetailByTitle" parameterType="NewsDetail" resultType="NewsDetail"> 9 select * from news_detail where title like concat('%',#{title},'%') 10 </select> 11 </mapper>
三、service層
1 package com.yusys.service; 2 3 import java.util.List; 4 5 import com.yusys.entity.NewsDetail; 6 7 public interface NewsDetailService { 8 9 public abstract List<NewsDetail> getAll(); 10 11 public abstract List<NewsDetail> getNewsDetailByTitle(); 12 13 }
1 package com.yusys.service; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Service; 7 8 import com.yusys.dao.NewsDetailMapper; 9 import com.yusys.entity.NewsDetail; 10 @Service 11 public class NewsDetailServiceImpl implements NewsDetailService { 12 @Autowired 13 NewsDetailMapper newsDetailMpper; 14 15 /* (non-Javadoc) 16 * @see com.yusys.service.NewsDetailService#getAll() 17 */ 18 @Override 19 public List<NewsDetail> getAll(){ 20 return newsDetailMpper.getAll(); 21 } 22 23 /* (non-Javadoc) 24 * @see com.yusys.service.NewsDetailService#getNewsDetailByTitle() 25 */ 26 @Override 27 public List<NewsDetail> getNewsDetailByTitle(){ 28 return newsDetailMpper.getNewsDetailByTitle(); 29 } 30 }
四、controller層
1 package com.yusys.controller; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Controller; 7 import org.springframework.ui.Model; 8 import org.springframework.web.bind.annotation.RequestMapping; 9 10 import com.yusys.entity.NewsDetail; 11 import com.yusys.service.NewsDetailService; 12 @Controller 13 public class NewsDetailController { 14 @Autowired 15 NewsDetailService newsDetailService; 16 17 @RequestMapping(value="/newsDetailList") 18 public String getAllDetail(Model model){ 19 List<NewsDetail> list=newsDetailService.getAll(); 20 model.addAttribute("list", list); 21 return "newsDetail"; 22 } 23 }
第四步、建立newsDetail.jsp進行顯示。
第五步、部署tomcat進行運行
一、
二、
三、點擊下一步後添加項目後finish
四、tomcat未啓動是雙擊
五、進入Overview界面,選擇如下配置,關閉該界面
六、啓動tomcat,運行程序,注掉controller中的方法調用,讓其直接轉到jsp頁面,效果顯現,一切OK,可是放開裏面的方法,出現了問題,mysql的jar和tomcat的jar衝突的問題,具體問題及其餘見相應的博文——maven集成SSM項目,Tomcat部署運行——SSM整合框架搭建