IDEA配置SSM(Spring-Spring MVC-MyBatis

dead_lee發表於2021-09-09

@[toc]

前言

本篇從安裝到配置到實現一個簡單的 API 全過程,意在教大家如何使用 IDEA 如何配置 SSM 框架,如何使用 maven 倉庫,也是我走了一些些彎路才得以成功的,所以希望記錄我步驟來幫助大家學 Java 學 Spring,一起來看看吧!

1、安裝 idea

準備的軟體有:
圖片描述
1.1 我們安裝一下 idea
圖片描述
1.2 安裝位置預設,然後選擇64位
圖片描述
1.3 安裝IDEA還是挺簡單,因為無論你怎麼安裝都能安裝成功,就一路下一步就行。

2、安裝 tomcat

圖片描述
一路下一步就可以
我們記錄一下安裝的位置:C:Program FilesApache Software FoundationTomcat 8.5

3、配置 IDEA

3.1 選外掛
圖片描述
3.2 如果實在不懂就全選就好,如果只開發 JAVA 開發 Spring 使用 Maven,就勾第一排橫著的三個就行。
我們先用免費的30天就好
圖片描述

4、開始建立工程

4.1 選擇建立新的工程
圖片描述
4.2 預設選了 SDK 就不用管,選擇 maven 管理,選擇
org.apache.maven.archetypes:maven-archetype-webapp
然後點選 next 即可
圖片描述
4.3 新建一個資料夾並起名 apidemo
圖片描述
4.4 新增 GroupId 和 ArtifactId
圖片描述
4.5 解壓 maven 倉庫記住解壓位置,然後點選 override 選擇檔案找到 maven 的 setting.xml 檔案
圖片描述
點選 next
圖片描述
選擇建立工程的檔案路徑,點選 Finish
圖片描述
點選 Enable Auto-Import
圖片描述
等待下載包,這個取決於你的網速,反正我是1、2分鐘就能下載完了。下載完之後注意左下角有個 BUILD SUCCESS,而且我們還可以看到 src 檔案下已經有基本骨架了
圖片描述

5、配置工程

5.1 新建幾個資料夾,先在 main 目錄下新建 java 、resources資料夾,在 webapp 裡的 WEB-INF 下新建 html 資料夾
圖片描述
圖片描述
5.2 resources 資料夾下新建 mapper 資料夾和 spring 資料夾,還是 resources 資料夾新建 jdbc.properties 檔案和 mybatis-config.xml
圖片描述
jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/upmovie_playsys?userUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "">
<configuration>
	<!-- 配置全域性屬性 -->
	<settings>
		<!-- 使用jdbc的getGeneratedKeys獲取資料庫自增主鍵值 -->
		<setting name="useGeneratedKeys" value="true" />

		<!-- 使用列標籤替換列別名 預設:true -->
		<setting name="useColumnLabel" value="true" />

		<!-- 開啟駝峰命名轉換:Table{create_time} -> Entity{createTime} -->
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>
</configuration>

5.3 spring 資料夾下新建 spring-dao.xml、spring-service.xml、spring-web.xml 三個檔案
[外鏈圖片轉存失敗(img-RHYi5cgd-1568174056880)(./IDEA18.png )]

spring-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
    xmlns:xsi="" xmlns:context=""
    xmlns:mvc=""
    xsi:schemaLocation="
    /spring-beans.xsd
    
    /spring-context.xsd
    
    /spring-mvc-3.2.xsd">
    <!-- 配置SpringMVC -->
    <!-- 1.開啟SpringMVC註解模式 -->
    <mvc:annotation-driven />
 
    <!-- 2.靜態資源預設servlet配置 (1)加入對靜態資源的處理:js,gif,png (2)允許使用"/"做整體對映 -->
    <mvc:resources mapping="/resources/**" location="/resources/" />
    <mvc:default-servlet-handler />
 
    <!-- 3.定義檢視解析器 -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/html/"></property>
        <property name="suffix" value=".html"></property>
    </bean>
    <!-- 檔案上傳解析器 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <!-- 1024 * 1024 * 20 = 20M -->
        <property name="maxUploadSize" value="20971520"></property>
        <property name="maxInMemorySize" value="20971520"></property>
    </bean>
 
    <!-- 4.掃描web相關的bean -->
    <context:component-scan base-package="com.caeser.apidemo.web" />
</beans>

5.4 新建包 com 然後在 com下新建 caeser 再新建 apidemo

在該包下,新建 dao、entity、web、service 四個資料夾
圖片描述
修改一下專案屬性
圖片描述
圖片描述
web包下面新建 MovieController.java
圖片描述
MovieController.java

package com.caeser.apidemo.web;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;



@Controller
@RequestMapping("/mv")
public class MovieController {
	
	@RequestMapping(value = "/get", method = RequestMethod.GET)
	@ResponseBody
	private Map<String, Object> getMV( HttpServletRequest request){
		Map<String, Object> modelMap = new HashMap<String, Object>();
		modelMap.put("jobDepartmentList", "123");
		return modelMap;
	}
}

6、修改 web.xml

<web-app xmlns="" xmlns:xsi=""
         xsi:schemaLocation="
                      /web-app_3_1.xsd"
         version="3.1" metadata-complete="true">
  <display-name>Archetype Created Web Application</display-name>
  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Kaptcha</servlet-name>
    <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
    <!-- 是否有邊框 -->
    <init-param>
      <param-name>kaptcha.border</param-name>
      <param-value>no</param-value>
    </init-param>
    <!-- 字型顏色 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.color</param-name>
      <param-value>red</param-value>
    </init-param>
    <!-- 圖片寬度 -->
    <init-param>
      <param-name>kaptcha.image.width</param-name>
      <param-value>135</param-value>
    </init-param>
    <!-- 使用哪些字元生成驗證碼 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.string</param-name>
      <param-value>ACDEFHKPRSTWX345679</param-value>
    </init-param>
    <!-- 圖片高度 -->
    <init-param>
      <param-name>kaptcha.image.height</param-name>
      <param-value>50</param-value>
    </init-param>
    <!-- 字型大小 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.size</param-name>
      <param-value>43</param-value>
    </init-param>
    <!-- 干擾線的顏色 -->
    <init-param>
      <param-name>kaptcha.noise.color</param-name>
      <param-value>black</param-value>
    </init-param>
    <!-- 字元個數 -->
    <init-param>
      <param-name>kaptcha.textproducer.char.length</param-name>
      <param-value>4</param-value>
    </init-param>
    <!-- 字型 -->
    <init-param>
      <param-name>kaptcha.textproducer.font.names</param-name>
      <param-value>Arial</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>Kaptcha</servlet-name>
    <url-pattern>/Kaptcha</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <!-- 預設匹配所有的請求 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

7、修改 pom.xml

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

<project xmlns="" xmlns:xsi=""
  xsi:schemaLocation=" ">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.caeser</groupId>
  <artifactId>apidemo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>apidemo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url></url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <spring.version>4.3.7.RELEASE</spring.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>net.sf.jasperreports</groupId>
      <artifactId>jasperreports</artifactId>
      <version>6.7.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>
    <!--  -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>
    <!-- Spring -->
    <!-- 1)包含Spring 框架基本的核心工具類。Spring 其它元件要都要使用到這個包裡的類,是其它元件的基本核心 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 2)這個jar 檔案是所有應用都要用到的,它包含訪問配置檔案、建立和管理bean 以及進行Inversion of Control
        / Dependency Injection(IoC/DI)操作相關的所有類。如果應用只需基本的IoC/DI 支援,引入spring-core.jar
        及spring-beans.jar 檔案就可以了。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 3)這個jar 檔案為Spring 核心提供了大量擴充套件。可以找到使用Spring ApplicationContext特性時所需的全部類,JDNI
        所需的全部類,instrumentation元件以及校驗Validation 方面的相關類。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 4) 這個jar 檔案包含對Spring 對JDBC 資料訪問進行封裝的所有類。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 5) 為JDBC、Hibernate、JDO、JPA等提供的一致的宣告式和程式設計式事務管理。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 6)Spring web 包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF整合類、檔案上傳的支援類、Filter類和大量工具輔助類。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 7)包含SpringMVC框架相關的所有類。 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 8)Spring test 對JUNIT等測試框架的簡單封裝 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- Servlet web -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <!-- json解析 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.7</version>
    </dependency>
    <!-- Map工具類 對標準java Collection的擴充套件 spring-core.jar需commons-collections.jar -->
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2</version>
    </dependency>
    <!-- DAO: MyBatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!-- 資料庫 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.37</version>
    </dependency>
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <!-- 圖片處理 -->
    <!--  -->
    <dependency>
      <groupId>net.coobird</groupId>
      <artifactId>thumbnailator</artifactId>
      <version>0.4.8</version>
    </dependency>
    <!--  -->
    <dependency>
      <groupId>com.github.penggle</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3.2</version>
    </dependency>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.2</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>apidemo</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF8</encoding>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

8、等待下載 jar 包

看你網速如何了,下載 jar 的過程其實蠻長的

9、配置 server

9.1 給 IDEA 新增 tomcat
圖片描述
9.2 搜尋 tom 勾選外掛
圖片描述
9.3 然後重啟 IDEA
然後再配置 tomcat ,File- Setting-Build,Execution,Deployment-Application Servers
圖片描述
圖片描述
一路OK即可
9.4 執行一次 mvn clean 和 mvn install
圖片描述
9.5 點選 Add Configuration,新增一個本地的 tomcat
圖片描述
圖片描述
圖片描述

10、啟動tomcat

圖片描述

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4686/viewspace-2824445/,如需轉載,請註明出處,否則將追究法律責任。

相關文章