Skip to content

idea搭建SSM项目

  • idea版本 IntelliJ IDEA 2024.3 (Ultimate Edition)

  • 搭建步骤

    1. 创建项目

      image-20250519151629533

      image-20250519152653291

    2. 搭建项目目录,搭建后的目录如下,无则补齐,有则忽略

      tex
      └─src
          └─main
              ├─java
              │  └─com
              │      └─zhl
              │          └─demo
              ├─resources
              └─webapp
                  └─WEB-INF
    3. 添加pom依赖

      xml
      <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/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.zhl</groupId>
        <artifactId>ssm-demo</artifactId>
        <packaging>war</packaging>
        <version>1.0-SNAPSHOT</version>
      
        <name>ssm-demo Maven Webapp</name>
        <url>http://maven.apache.org</url>
      
        <properties>
          <spring.version>5.0.2.RELEASE</spring.version>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <jackson.version>2.9.3</jackson.version>
          <commons-fileupload.version>1.3.3</commons-fileupload.version>
          <javax.servlet-api.version>4.0.0</javax.servlet-api.version>
          <mysql-connector-java.version>5.1.44</mysql-connector-java.version>
          <commons-dbcp2.version>2.1.1</commons-dbcp2.version>
          <commons-pool2.version>2.4.3</commons-pool2.version>
        </properties>
      
        <dependencies>
      
          <!-- spring-core -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-ioc -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-context -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-orm -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-tx -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-web -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!-- spring-webmvc -->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
          </dependency>
      
          <!-- jackson相关依赖 -->
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
            <exclusions>
              <exclusion>
                <artifactId>jackson-annotations</artifactId>
                <groupId>com.fasterxml.jackson.core</groupId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
          </dependency>
      
          <!-- 文件上传依赖 -->
          <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
          </dependency>
      
          <!-- java servlet -->
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet-api.version}</version>
            <scope>provided</scope>
          </dependency>
      
          <!-- mysql驱动 -->
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java.version}</version>
          </dependency>
      
          <!-- dbcp2连接池 -->
          <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>${commons-dbcp2.version}</version>
          </dependency>
      
          <!-- common-pool2 -->
          <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>${commons-pool2.version}</version>
          </dependency>
      
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
          </dependency>
        </dependencies>
      
        <build>
          <finalName>ssm-demo</finalName>
        </build>
      
      </project>
    4. 添加配置文件

      1. applicationContext.xml(src/main/resources文件夹下)

        properties
        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               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/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">
        
            <!--配置数据源-->
            <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
                <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </bean>
        
            <!--事务管理-->
            <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="dataSource"/>
            </bean>
            <!--事务的配置-->
            <tx:advice id="txAdvice" transaction-manager="transactionManager">
                <!--配置事务的属性-->
                <tx:attributes>
                    <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT"/>
                    <!--
                    <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT"/>
                    <tx:method name="select*" propagation="REQUIRED" isolation="DEFAULT"/>
                    -->
                </tx:attributes>
            </tx:advice>
        </beans>
      2. spring-mvc.xml(src/main/resources文件夹下)

        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:mvc="http://www.springframework.org/schema/mvc"
               xmlns:context="http://www.springframework.org/schema/context"
               xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
        
            <context:component-scan base-package="com.zhl.demo.controller"/>
            <!-- 解决静态资源访问问题,如果不加mvc:annotation-driven会导致无法访问handler-->
            <mvc:default-servlet-handler/>
            <!--解决响应乱码-->
            <mvc:annotation-driven>
                <mvc:message-converters>
                    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                        <constructor-arg value="utf-8"/>
                    </bean>
                </mvc:message-converters>
            </mvc:annotation-driven>
        </beans>
      3. web.xml(src/main/webapp/WEB-INF文件夹下)

        xml
        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
                 version="4.0">
        
            <!--Spring监听器-->
            <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
            <!--Spring配置文件的加载-->
            <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:applicationContext.xml</param-value>
            </context-param>
            <!--编码过滤-->
            <filter>
                <filter-name>encondig</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>encondig</filter-name>
                <url-pattern>/*</url-pattern>
            </filter-mapping>
            <!-- springmvc 前端控制器 -->
            <servlet>
                <servlet-name>springmvc</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:spring-mvc.xml</param-value>
                </init-param>
            </servlet>
            <servlet-mapping>
                <servlet-name>springmvc</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>
        
        </web-app>
    5. 控制层代码示例

      java
      package com.zhl.demo.controller;
      
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.GetMapping;
      
      @Controller
      public class TestController{
          
          /***
           * @description: 跳转到index.jsp页面
           * @author: ZhangHL 
           * @date: 2025/5/19 17:12
           * @param: []
           * @return: java.lang.String
           **/
          @GetMapping("/")
          public String goToIndex() {
              return "index";
          }
      }
    6. 配置tomcat并启动,访问 http://host:port/项目名/页面路由,下方截图中的 /ssm_demo_war_exploded就是项目名

      image-20250519171129253

      image-20250519171145991

      image-20250519171223677

项目地址 sso-demo

MIT版权,未经许可禁止任何形式的转载