SSM——> SpringMVC + Spring + Mybatis
因為 Spring MVC 是 Spring 框架中的一個子模塊,所以 Spring 與 SpringMVC 之間不存在整合的問題,實際上,SSM 框架的整合只涉及 Spring 與 MyBatis 的整合以及 Spring MVC 與 MyBatis 的整合,
實作 SSM 框架的整合首先需要準備 3 個框架的 JAR 包以及其他整合所需要的 JAR 包,
基礎包的匯入
servlet、lombok
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
<scope>provided</scope>
</dependency>
一、創建Maven Web專案
詳情參考:https://blog.csdn.net/weixin_42067873/article/details/114265889
二、SpringMVC部分
1、導jar包
在pom.xml檔案下,匯入所需要的jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
2、在web.xml檔案下配置DispatcherServlet
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation配置后可以修改springmvc組態檔的路徑 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 配置服務器啟動的時候就配置 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 配置統一編碼過濾器 -->
<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
注:src目錄下的 resources目錄 和 java目錄本質上是同一個目錄,在開發階段表面上它們是兩個不同的目錄,但是在運行階段,target中會將這兩個目錄合并為同一個目錄,成為classes目錄,所有classpath指的是運行期間代指這兩個目錄(resources、java)
3、配置springmvc的組態檔(springmvc.xml)
(1)匯入視圖決議器需要使用到的jstl包
組態檔中需要配置視圖決議器,所以需要匯入 jstl 包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
(2)組態檔
<!-- 開啟注解驅動 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 掃描Controller所在的包 -->
<context:component-scan base-package="com.hanmh.controller"></context:component-scan>
<!-- 配置視圖決議器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
注:<context:component-scan base-package="com.hanmh"></context:component-scan>
只有在IOC中掃包時,才能掃描出對應的子包內容
至此,可以先寫一個簡單的測驗Controller,測驗下SpringMVC環境搭建的情況
三、Spring部分
注:Spring在掃包時,放的是父包的話,會掃描對應包下所有的子包
即:<context:component-scan base-package="com.hanmh"></context:component-scan>
1、組態檔創建(resources目錄下)
在resources目錄下,創建Spring組態檔,行業內一般起名為applicationContext.xml
2、配置監聽器(web.xml中配置)
首先,現在web.xml檔案中配置監聽器,使得在服務器剛啟動后就加載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>
四、Mybatis集成到Spring中
1、導包
需要匯入 mybatis、mybatis-spring、druid、mysql 包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
(1)spring和mybatis集成還需要匯入 spring-orm 包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
2、在spring組態檔中配置相關資訊(applicationContext.xml)
<!-- 連接池 -->
<bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/aaa?useUnicode=true&charasetEncoding=UTF8"></property>
<property name="username" value="root"></property>
<property name="password" value="hanmenghao"></property>
<!-- 初始狀態創建的連接數量 最小值 -->
<property name="minIdle" value="10"></property>
<!-- 支持連接的最大數-->
<property name="maxActive" value="20"></property>
</bean>
<!-- 配置SqlsessionFactry ref:物件賦值-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"></property>
<!-- 別名包 在加載value對應下的類時,不需要加前面的com.hanmh.pojo -->
<property name="typeAliasesPackage" value="com.hanmh.pojo"></property>
</bean>
<!-- 配置掃描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 掃描介面所在的包 此處必須配置為dao下 -->
<property name="basePackage" value="com.hanmh.dao"></property>
</bean>
五、匯入工具包(duracloud)
該工具包提供日志輸出功能,方便查看問題的出處
<dependency>
<groupId>org.duracloud</groupId>
<artifactId>common</artifactId>
<version>7.0.0</version>
</dependency>
注:運行時,報錯 classNotFound 一定是缺少對應的jar包
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/266038.html
標籤:其他
