1. 程式人生 > >SSM框架整合( Spring / SpringMVC / Mybatis )

SSM框架整合( Spring / SpringMVC / Mybatis )

1.建立maven工程匯入座標

  1.     Spring: spring-context 5.0.2 (spring容器)     spring-tx 5.0.2(spring事務)     spring-jdbc 5.0.2(springJDBC)                                                     spring-test   5.0.2(spring單元測試)   spring-webmvc 5.0.2(springMVC) 
  2.     Mybatis:mybatis     3.4.5  (mybatis核心)      mybatis-spring   1.3.1   (mybatis與Spring整合所需)
  3.    切面:  aspectjweaver    1.8.7    (Spring依賴的AOP框架)   
  4.    資料庫:mysql-connector-java 5.1.6    (MySql資料庫驅動)
  5.    單元測試: junit    4.12    (單元測試)
  6.    ServletAPI:  jsp-api    2.0   (jsp頁面使用request等對像)      servlet-api    2.5 (java檔案使用request等物件)                                //注意:這兩個jar包的 scope 屬性需要設定為 provided
  7.   頁面表示式:JSTL   1.2 (jstl標籤庫 )       standard    1.1.2   (jstl標籤庫依賴jar包)
<properties>
		<!-- 專案編碼 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 編譯及輸出的時候應用那個版本的jdk -->
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>
	

	<dependencies>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.1.2</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.5</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.7</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.6</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>1.1.2</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.9.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.9.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.0</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>
	</dependencies>

2.編寫配置檔案

  1.   資料庫配置檔案(db.properties)
    jdbc.driver = com.mysql.jdbc.Driver
    jdbc.url = jdbc:mysql://127.0.0.1:3306/springdb?characterEncoding=UTF-8
    jdbc.username = root
    jdbc.password = root
    			

     

  2.   編寫mybatis配置檔案(sqlSessionConfig.xml)
       <configuration>
    		<!-- 列印執行的Sql語句 -->	
    		<settings>
    			<setting name="logImpl" value="STDOUT_LOGGING"/>
    		</settings>
    		<!-- 配置pageHelper -->
    		<plugins>
    	        <plugin interceptor="com.github.pagehelper.PageInterceptor">
    	            <!--<!–分頁引數合理化  –>-->
    	            <property name="reasonable" value="true"/>
    	        </plugin>
    	    </plugins>
    	</configuration>		

     

  3.   編寫Spring配置檔案(applicationContext.xml)
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" 
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:aop="http://www.springframework.org/schema/aop" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans
    		http://www.springframework.org/schema/beans/spring-beans.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
    		http://www.springframework.org/schema/aop
    		http://www.springframework.org/schema/aop/spring-aop.xsd">
    		
    	<!-- 載入外部配置檔案 -->		
    	<context:property-placeholder location="classpath:db.properties"/>
    		
    	<!-- 掃描註解所在包,並排除controller,包地址需要根據實際應用修改 -->		
    	<context:component-scan base-package="com.zzz">
    		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    	</context:component-scan>	
    		
    	<!-- 載入資料來源 -->
    	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<!-- 載入資料來源四大屬性 -->
    		<property name="driverClassName" value="${jdbc.driver}" />
    		<property name="url" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    	</bean>
    	<!-- 配置事務管理器 -->
    	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<!-- 給事務繫結資料來源 -->
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<!-- 開啟AOP註解事務,使用cglib作為動態代理 -->
    	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
    
    	<!-- 建立sqlSession工廠 -->
    	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="configLocation" value="classpath:sqlMapConfig.xml" />
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<!-- 配置掃描mybatis註解所在包,包地址需要根據實際應用修改 -->
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    		<property name="basePackage" value="com.zzz.dao" />
    	</bean>
    
    
    </beans>

     

  4. 編寫SpringMVC的配置檔案(spring-mvc.xml)

    <?xml version="1.0" encoding="UTF-8"?>
    		<beans xmlns="http://www.springframework.org/schema/beans"
    			xmlns:context="http://www.springframework.org/schema/context"
    			xmlns:mvc="http://www.springframework.org/schema/mvc" 
    			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    			xsi:schemaLocation="
    				http://www.springframework.org/schema/beans
    				http://www.springframework.org/schema/beans/spring-beans.xsd
    				http://www.springframework.org/schema/context
    				http://www.springframework.org/schema/context/spring-context.xsd
    				http://www.springframework.org/schema/mvc
    				http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    			1.掃描view層註解配置所在包
    			
    				<context:component-scan base-package="com.zzz">
    					1.1配置只包含web的後端處理器
    					<context:include-filter type="annotation" 
                        expression="org.springframework.stereotype.Controller"/>
    				</context:component-scan>
    			
    			2.載入SpringMVC的三大元件
    			
    				<mvc:annotation-driven />
    			
    			3.配置檢視解析器
    			
    				<bean 
                   class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    					<property name="prefix" value="/WEB-INF/pages/" />
    					<property name="suffix" value=".jsp" />
    				</bean>
    			
    			4.配置靜態資源不攔截
    			
    				<mvc:resources location="/js/" mapping="/js/**" />
    				<mvc:resources location="/css/" mapping="/css/**" />
    				<mvc:resources location="/image/" mapping="/image/**" />
    
    		</beans>

     

3.修改web.xml配置(WEB-INF目錄下的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_2_5.xsd" 
		version="2.5">
  <display-name>msgboard</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
	<!-- 配置載入Spring配置檔案 -->  
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:appliactionContext.xml</param-value>
	</context-param>
	
	<!-- 配置監聽器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- 配置編碼過濾器 -->
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<!-- 設定編碼過濾器引數 -->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
  	<filter-mapping>
  		<filter-name>characterEncodingFilter</filter-name>
  		<url-pattern>/*</url-pattern>
  	</filter-mapping>
  	
  	<!-- 配置Spring前端控制器 -->
  	<servlet>
  		<servlet-name>dispatcherServlet</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<!-- 設定建立servelt時載入spring-mvc配置檔案 -->
  		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath:spring-mvc.xml</param-value>
  		</init-param>
  		<!-- 配置應用一載入就建立該servlet -->
  		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<servlet-mapping>
  		<servlet-name>dispatcherServlet</servlet-name>
  		<url-pattern>/</url-pattern>
  	</servlet-mapping>
  	
</web-app>