一步一步教你用IntelliJ IDEA 搭建SSM框架(1)


1.基本概念

SSM框架指:Spring MVC + Spring + MyBatis

Spring MVC是一種web層mvc框架,用於替代servlet,處理|響應請求,獲取表單參數,表單校驗等

Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。 (摘自百度百科)。

2.開發環境

安裝java jdk,MySQL,IntelliJ IDEA,Tomcat,Maven

這是我電腦上的java和MySQL版本

 

Tomcat 我用的

IntelliJ IDEA我用的

 

Maven我用的3.6.0

 

3.搭建SSM框架

打開IntelliJ IDEA,選擇 File》Project》New Project ,左側欄選擇 Maven ,右側Project SDK 會是默認的java,選擇Create from archetype,選擇下圖中的2

 

        點擊上圖Next,進入下圖,GroupId和ArtifactId是Maven項目的坐標,保證項目的唯一性。如果項目上傳到了maven本地倉庫去,必須根據這兩個id去查找項目。

GroupId 一般分為多段,這里只說兩段,第一段為域,第二段為公司名稱。域包括:org、com、cn等,其中org為非營利組織,com為商業組織。
ArtifactId實際對應項目的名稱,就是項目根目錄的名稱。這樣說起來比較抽象,下面舉例說明:

       例如下圖中:GroupId是cn.only,它的域是cn(因為cn表示中國),個人項目所以為only,ArtifactId是helloworld。 GroupId實際對應JAVA的包的結構,是main目錄里java的目錄結構。ArtifactId實際對應項目的名稱。

   

     點擊上圖Next,進入下圖,選擇本地Maven的位置,我的Maven版本是3.6.0

 

點擊上圖Next,進入下圖,選擇項目的存放地址,如下圖,注意Project location中一定要有項目名字,項目名稱默認

 

 

  點擊上圖Finish,IntelliJ IDEA右下角彈窗如下圖:

 

     點擊Enable Auto-Import,以后更改pom文件后就會自動下載依賴包了,所以點擊Enable Auto-Import。

     等待幾分鍾,項目正在下載相關依賴包,下載完畢以后,項目的目錄結構如下圖:

.idea:IntelliJ IDEA 在本項目中的配置,可以刪掉,刪掉后打開項目要重新配置。

src:存放項目代碼

pom.xml:maven的配置文件,需要什么jar包,在里面添加依賴,maven會自動下到本地倉庫。

         現在構建SSM項目結構:

在src下建test文件夾,用來放測試文件,在test文件夾下建java和resources文件夾:

         選擇test的下的java文件夾,鼠標右鍵選擇Mark Directory  as》Test Sources Root

         選擇test的下的resources文件夾,鼠標右鍵選擇Mark Directory  as》Test Resources Root

  

在main文件夾下建java和resources文件夾:

         選擇main的下的java文件夾,鼠標右鍵選擇Mark Directory  as》Sources Root

         選擇main的下的resources文件夾,鼠標右鍵選擇Mark Directory  as》Resources Root

在src》main》java文件夾下建package,鼠標選擇java文件夾,右鍵選擇New》Package,建Package,名字就是上面GroupId,為cn.only 

在cn.only下建4個Package:controller:用來放前台url映射文件,dao用來放與數據庫的接口文件,entity用來放實體類文件,service用來放自己定義的接口

鼠標選擇java,右鍵選擇New》Package,建Package,名字為cn.only.controller,controller Package添加成功如下圖

繼續鼠標選擇java,右鍵選擇New》Package,建Package,名字為cn.only.dao,dao Package添加成功如下圖

 

entity和service的添加方法一樣如上,名字為cn.only.entity和cn.only.service,添加成功,如下圖

 

src》main》resources下添加兩個文件夾: spring和sqlmap,spring下添加spring的配置文件applicationContext.xml

src》main》resources下再添加四個配置文件:generator.properties ,generatorConfig.xml ,jdbc.properties 和 log4j.properties

generator.properties和generatorConfig.xml :用來配置mybatis

jdbc.properties :配置數據庫相關信息

log4j.properties:配置日志

resources的目錄結構如下圖:

 

 src》main》webapp下新建文件夾:js ,css,images 用來存放前端資源

 src》main》webapp》WEB-INF下新建views文件夾,jsp頁面放在這里。

 

webapp 的目錄結構如下圖:

 

整個項目的目錄已經構建好,如下圖:

 

 

下面開始配置項目

根目錄下的pom.xml:POM是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫做pom.xml。該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目授權、項目的url、項目的依賴關系等。在Maven中,project可以什么都沒有,甚至沒有代碼,但是必須包含pom.xml文件。

打開pom.xml,會發現已經默認有一些配置了,下面是我的pom.xml配置文件:

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

<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>cn.only</groupId>
  <artifactId>helloworld</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>helloworld Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</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版本號 -->
    <spring.version>4.2.5.RELEASE</spring.version>
    <!-- mybatis版本號 -->
    <mybatis.version>3.2.4</mybatis.version>
    <!-- log4j日志文件管理包版本 -->
    <slf4j.version>1.6.6</slf4j.version>
    <log4j.version>1.2.12</log4j.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- spring核心包 -->
    <!-- springframe start -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-oxm</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- springframe end -->

    <!-- mybatis核心包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <!-- mybatis/spring包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.2</version>
    </dependency>
    <!-- mysql驅動包 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.0.8</version>
    </dependency>

    <!-- jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2.1-b03</version>
      <scope>provided</scope>
    </dependency>

    <!-- servlet -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <!-- json數據 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.7.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.7.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.7.1</version>
    </dependency>
    <dependency>
      <groupId>net.sf.json-lib</groupId>
      <artifactId>json-lib</artifactId>
      <version>2.4</version>
      <classifier>jdk15</classifier>
    </dependency>
    <!-- commons -->
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.4</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1</version>
    </dependency>
    <dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>1.5.6</version>
    </dependency>
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.8.3</version>
    </dependency>
    <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.9</version>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>jsr250-api</artifactId>
      <version>1.0</version>
    </dependency>

    <dependency>
      <groupId>net.sf.ezmorph</groupId>
      <artifactId>ezmorph</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>javax.activation</groupId>
      <artifactId>activation</artifactId>
      <version>1.1</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <!-- 日志文件管理包 -->
    <!-- log start -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!--上傳-->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>
    <!-- log end -->
  </dependencies>

  <build>
    <finalName>hello</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>
      </plugins>
    </pluginManagement>
    <plugins>
      <!-- mybatis-generator -->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <!-- mybatis-generator的配置文件,根據情況調整位置 -->
          <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
        </configuration>
        <executions>
          <execution>
            <id>Generate MyBatis Artifacts</id>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
View Code

 配置applicationContext.xml,我的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:beans="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-4.3.xsd
         http://www.springframework.org/schema/mvc
         http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"  >

    <!-- ①:對cn.only包中的所有類進行掃描,以完成Bean創建和自動依賴注入的功能 -->
    <context:component-scan base-package="cn.only"/>
    <mvc:annotation-driven />
    <!-- 靜態資源訪問 -->
    <!--如果webapp下你新建了文件夾,想訪問里面的靜態資源,那么就要在這配置一下-->
    <mvc:resources location="/images/" mapping="/images/**"/>
    <mvc:resources location="/css/" mapping="/css/**"/>
    <mvc:resources location="/js/" mapping="/js/**"/>

    <!-- Configures the @Controller programming model
    <mvc:annotation-driven />-->
    <!-- ②:啟動Spring MVC的注解功能,完成請求和注解POJO的映射 -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter"/>
            </list>
        </property>
    </bean>

    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>





    <!-- 配置視圖解析器,把控制器的邏輯視頻映射為真正的視圖 -->
    <!-- /WEB-INF/jsp/start.jsp -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>




    <!-- 配置dbcp數據庫連接池 -->

    <!-- <context:property-placeholder location="classpath:db.properties"/> -->
    <!--數據庫配置 -->
    <bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>

    </bean>

    <!-- 數據庫連接池 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="****"/>
        <property name="initialSize" value="1"/>
        <property name="maxActive" value="100"/>
        <property name="maxIdle" value="5"/>
        <property name="maxWait" value="80000"/>
    </bean>

    <!-- 配置事務管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 攔截器 -->
    <mvc:interceptors>
        <!-- 國際化操作攔截器 如果采用基於(請求/Session/Cookie)則必需配置 -->
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
    </mvc:interceptors>
    <!-- 定義無Controller的path<->view直接映射 -->
    <!-- <mvc:view-controller path="/" view-name="redirect:/" /> -->
    

</beans>
View Code

配置jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
#test為我本地的數據庫名
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username=root
#下面輸入自己數據庫的密碼
password=*****
#定義初始連接數
initialSize=0
#定義最大連接數
maxActive=20
#定義最大空閑
maxIdle=20
#定義最小空閑
minIdle=1
#定義最長等待時間
maxWait=60000
View Code

注意:上面的代碼中如果沒有serverTimezone=UTC,代碼運行會報錯 

配置log4j.properties

### set log levels ###
log4j.rootLogger = INFO,D

###輸出到控制台###
log4j.logger.toConsole=debug,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout


log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n

### 輸出到日志文件 ###
##  其中File 可以采用絕對路徑 亦可以采用相對路徑 catalina.home 是tomcat目錄  如果沒有logs文件夾 將會報錯  ##
##  更加傾向於將日志文件放在  tomcat的日志目錄下${catalina.home}/logs/salesmanb2bError.log ##
##  絕對路徑如:e:/salesmanb2bError.log ##
log4j.logger.daily=INFO,D
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.home}/logs/helloworld/helloworld.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n


##log4j.logger.org.apache.ibatis=debug,stdout
##log4j.logger.java.sql=debug,stdout
View Code

配置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_3_0.xsd" version="3.0">
  <display-name>helloworld</display-name>
  <!-- 配置編碼方式-->
  <filter>
    <filter-name>encodingFilter</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>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


  <!-- 配置springmvc的前端控制器 指向spring-mvc.xml 程序在啟動的時候就加載springmvc 可以接受所有請求 load-on-startup:表示啟動容器時初始化該Servlet; -->
  <servlet>
    <servlet-name>springServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 可以自定義servlet.xml配置文件的位置和名稱, 默認為WEB-INF目錄下,名稱為[<servlet-name>]-servlet.xml,如spring-servlet.xml -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value> classpath:spring/applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 將前端URL請求和后台處理方法controller建立對應關系-->
  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- Spring配置 -->
  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>
  <!-- 取消對某一類文件的攔截-->
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.md</url-pattern>
  </servlet-mapping>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value> classpath:spring/applicationContext.xml</param-value>
  </context-param>
  <!-- 歡迎頁面-->
  <welcome-file-list>
    <welcome-file>/WEB-INF/index.jsp</welcome-file>
  </welcome-file-list>
  <!--404錯誤展示頁面,可自行配置-->
  <!--<error-page>-->
  <!--<error-code>404</error-code>-->
  <!--<location>/WEB-INF/views/404.jsp</location>-->
  <!--</error-page>-->
  <!--設置session失效時間為30分鍾 -->
  <session-config>
    <session-timeout>600</session-timeout>
  </session-config>
</web-app>
View Code

最后配置Tomcat,配置好Tomcat代碼就可以跑起來了。選擇Add Configuration...》彈出配置窗口,如下圖

 

 

點擊上圖紅框中的+,選擇Tomcat Server》Local,彈出窗口,如下圖,

 

 

配置Application server,在上圖中選擇紅框中的configure...,彈出窗口如下圖,選擇Tomcat的安裝路徑,配置好Tomcat。

 

配置Deployment,如下圖,

 

上圖中,點擊+,選擇Artifact...,彈窗如下圖,

 

上圖中選擇紅框中內容,點擊OK,如下圖: 

 

點擊上圖OK,Tomcat配置完畢。

 如上圖,點擊綠色三角形,運行程序。

運行結果如下:

程序正常啟動,spring mvc已經搭建好,下一篇文章配置mybatis-geneator,這是一款mybatis自動代碼生成工具。

本文參照這篇文章寫的:https://www.cnblogs.com/toutou/p/9015126.html#_nav_0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM