如何使用IDEA搭建SSM框架

简介: 我除了在运营掘金以外,还有一个博客和微信公众号,他们的地址在上方,有需要的同学可以看看,博客是我早期开始写的,主要记录一些在开发过程中遇到的问题以及怎么解决的,旨在帮助可能遇到同样问题的同学快速解决问题。昨天在写博客的时候,恰巧看到自己的博客文章浏览量较多的竟然是一个关于SSM(Spring、SpringMVC、Mybatis)的入门级文章,可能跟现在越来越多的人学习编程有关。

一、前言


我除了在运营掘金以外,还有一个博客和微信公众号,他们的地址在上方,有需要的同学可以看看,博客是我早期开始写的,主要记录一些在开发过程中遇到的问题以及怎么解决的,旨在帮助可能遇到同样问题的同学快速解决问题。昨天在写博客的时候,恰巧看到自己的博客文章浏览量较多的竟然是一个关于SSM(Spring、SpringMVC、Mybatis)的入门级文章,可能跟现在越来越多的人学习编程有关。所以在这里我记录一下使用IDEA整合SSM框架,以及期间可能会遇到的问题。之前也写过一篇IDEA和Eclipse整合SpringBoot的文章,需要的可以跳转:SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目


先来说明这里我的环境和文件的版本号:


jdk使用的是jdk1.8:


微信截图_20220519151936.png


maven使用的是maven3.5.2版本:


8df0ddaa92a94cb390f1fbe8e2343203~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


IDEA则使用的是2018.1版本的。


二、正文


在准备好上面的环境之后,开始正式的项目开发。


详细步骤如下:


一、创建项目


一、新建一个Maven webapp项目:在idea的菜单栏的file-->New-->Project-->Maven-->选择maven-archetype-webapp-->next;


44d8873d5dea49aa807216e7fc99234b~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


1874216d6d034f0a904f89a8204e794f~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


ae7f39bc34714a6eb206a5521a953547~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


最后一个页面点击Finish,忘记截图了,第一次搭建可能会比较慢,如果配置了镜像仓库的话会快很多,关于配置淘宝镜像这个我在博客中记录过了,有需要的可以去看看。


创建完就是这样的了:


b3f58bda8b8d4e0f9d02c2bc6c909238~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


有些人可能会跟我这里一样,src下没有java和resource文件夹,这里需要点击File-->project structure。


cb94242334ee4ba6a223b5c1947def61~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


98fc6dce66974ccaba46b16552befeaf~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


新建好java和resource文件夹后,右键分别选择sources和resource:


88a9e7b78add445eac52bf2e38bd13e1~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


9f95900370f64d7aa355c1f17916fd40~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


ebbc3a69a5ff445cb2a58129d18be190~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


或者点击上面的mark as一样的意思:


65001283dfab47e5b8673b55d268fe93~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


最后点击apply,然后点击ok。


二、配置文件


接下来配置pom.xml文件,将需要的包都导进来。我的pom文件如下:


<?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>com.xinyi</groupId>
  <artifactId>SSMDemp</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>SSMDemp 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>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- spring版本号 -->
    <spring.version>4.3.5.RELEASE</spring.version>
    <!-- mybatis版本号 -->
    <mybatis.version>3.4.1</mybatis.version>
  </properties>
  <dependencies>
    <!-- java ee -->
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>
    <!-- 单元测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <!-- 实现slf4j接口并整合 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.2</version>
    </dependency>
    <!-- JSON -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.7</version>
    </dependency>
    <!-- 数据库 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
      <scope>runtime</scope>
    </dependency>
    <!-- 数据库连接池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <!-- 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.3.1</version>
    </dependency>
    <!-- Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</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-tx</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-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>ChatRobot</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <!-- 设置JDK版本 -->
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
复制代码


再写一个jdbc的配置文件,jdbc.properties:


数据库驱动--mysql:jdbc.driver=com.mysql.jdbc.Driver


数据库地址:jdbc.url=jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8


数据库用户名:jdbc.username=root


数据库密码:jdbc.password=123456


设置最大连接数和最小:c3p0.maxPoolSize=30 c3p0.minPoolSize=10


设置关闭连接后不自动commit:c3p0.autoCommitOnClose=false


设置获取连接超时时间:c3p0.checkoutTimeout=10000


设置当获取连接失败重试次数:c3p0.acquireRetryAttempts=5


接下来配置mybatis的配置文件,spring-mybatis.xml:


扫描service包下所有使用注解的类型:


<context:component-scan base-package="service"/>
复制代码


配置数据库相关参数properties的属性:${url}


<context:property-placeholder location="classpath:jdbc.properties"/>
复制代码


数据库连接池配置:


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
        <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
        <property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
        <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
</bean>
复制代码


配置SqlSessionFactory对象


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描bean包 使用别名 -->
        <property name="typeAliasesPackage" value="bean"/>
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
复制代码


配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中


<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- 注入sqlSessionFactory -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <!-- 给出需要扫描Dao接口包 -->
    <property name="basePackage" value="dao"/>
</bean>
复制代码


配置事务管理器


<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
</bean>
复制代码


配置基于注解的声明式事务


<tx:annotation-driven transaction-manager="transactionManager"/>
复制代码


接着配置spring-mvc.xml文件,具体内容以及说明如下: 配置扫描web相关的bean


<context:component-scan base-package="controller"/>
复制代码


开启SpringMVC注解模式:


<mvc:annotation-driven/>
复制代码


静态资源默认servlet配置:


<mvc:default-servlet-handler/>
复制代码


配置jsp 显示ViewResolver


<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>
复制代码


然后接着配置webapp\WEB-INF\web.xml路径下的web.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_3_1.xsd"
         version="3.1">
  <display-name>SSMDemo</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>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- 配置DispatcherServlet -->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-*.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!-- 匹配所有请求,此处也可以配置成 *.do 形式 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>
复制代码


上面这些就是项目需要用到的配置文件,有些地方每个人是不一样的,所以如果直接替换的时候需要修改。


三、逻辑代码


这里我在数据库创建了一个user表,并插入数据。


建表语句:


CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `email` varchar(255) NOT NULL COMMENT '邮箱',
 `password` varchar(255) NOT NULL COMMENT '密码',
 `username` varchar(255) NOT NULL COMMENT '姓名',
 PRIMARY KEY (`id`),
 UNIQUE KEY `email` (`email`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
复制代码


向表空中插入数据:


INSERT INTO `user` VALUES ('1', '1@qq.com', '123456', '张三');
INSERT INTO `user` VALUES ('2', '2@qq.com', '234567', '李四');
INSERT INTO `user` VALUES ('3', '3@qq.com', '345678', '王五');
复制代码


查询结果如下:


ace4e5ccf82a4c7db360c82987111e98~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


前面的都是一些准备的工作,后面开始正式些后台的代码。首先新建一个实体类,命名为,User,代码如下:


package bean;
public class User {
    private long id;
    private String email;
    private String password;
    private String username;
    public long getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}
复制代码


然后新建一个dao包并在dao包下新建一个接口,命名为UserDao,声明一个查询的方法,代码如下:


package dao;
import bean.User;
public interface UserDao {
    //根据d查询用户
    User selectUser(long id);
}
复制代码


接着新建一个service包,然后在service包下新建一个userservice接口和UserServiceImpl类实现userservice接口,代码分别如下:


package service;
import bean.User;
public interface UserService {
    public User selectUser(long userId);
}
复制代码


package service;
import bean.User;
import dao.UserDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service("userService")
public class UserServiceImpl implements UserService{
    @Resource
    private UserDao userDao;
    public User selectUser(long Id) {
        return this.userDao.selectUser(Id);
    }
}
复制代码


然后在resource文件夹下新建一个mapper文件夹,然后新建一个UserDao.xml映射文件,用来写具体的sql语句,为UserDao接口方法提供sql语句配置,文件内容如下:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.UserDao">
    <select id="selectUser" resultType="User" parameterType="long">
       SELECT * FROM user WHERE id = #{id}
   </select>
</mapper>
复制代码


接着新建一个controller文件夹,新建一个usercontroller类,代码如下:


package controller;
import javax.servlet.http.HttpServletRequest;
import bean.User;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import service.UserService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Controller
@RequestMapping("/user")
class UserController {
    @Resource
    private UserService userService;
    @RequestMapping("/hello.do")
    public void selectUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        long userId = Long.parseLong(request.getParameter("id"));
        User user = this.userService.selectUser(userId);
        ObjectMapper mapper = new ObjectMapper();
        response.getWriter().write(mapper.writeValueAsString(user));
        response.getWriter().close();
    }
}
复制代码


然后开始写前端页面,用来结果的展示。在webapp下新建一个index.html文件,代码如下:


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>SSMDemo</title>
</head>
<script>
    //selectUser按钮的js功能代码
    function selectUser() {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("test").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("POST", "user/hello.do", true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send("id=2");
    }
</script>
<body>
<p id="test">Hello World</p>
<button type="button" onclick="selectUser()">查询用户</button>
</body>
</html>
复制代码


接下来就进行测试,点击Edit Configurations配置运行环境,然后选择Tomcat Server-->Local,选择本地的tomcat服务器。


219038d50976491bab5cccf9442ed1ce~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


ae90ae82fd1e43e2b966c48e41435c1e~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


abf0804c23ad4acca55e6e1b205df5cd~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


51ae31982bc54f6f9db7b9e58e08ad9c~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


然后启动项目:


dc51b72c93314b468654063084e918b4~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


项目启动后会自动打开页面


954d496cd9044e54a2bea1c3bcb11c6f~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


点击查询用户按钮,则hello world被替换成数据库中id为2的用户数据:


4b7c0170822b4be4b0229e180162a33a~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


三、结尾


上面就是如何使用idea开发一个简单的SSM项目的完整步骤了,如果有不对的地方欢迎在下方留言交流指正。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
646 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
12月前
|
SQL Java 数据库连接
2-SSM框架篇
Spring框架核心知识点总结,涵盖IOC、DI、Bean作用域、事务管理、AOP、Spring MVC流程及MyBatis相关问题。内容包括控制反转与依赖注入原理、Bean生命周期与线程安全、事务传播机制、JDK与CGLIB代理区别、MyBatis动态SQL与缓存机制等高频面试题。
229 0
|
前端开发 Java 数据库连接
Spring MVC 扩展和SSM框架整合
通过以上步骤,我们可以将Spring MVC扩展并整合到SSM框架中。这个过程包括配置Spring MVC和Spring的核心配置文件,创建控制器、服务层和MyBatis的Mapper接口及映射文件。在实际开发中,可以根据具体业务需求进行进一步的扩展和优化,以构建更加灵活和高效的企业级应用程序。
354 5
|
Java 关系型数据库 MySQL
ssm063基于SSM框架的德云社票务系统的设计与实现(文档+源码)_kaic
基于SSM框架的德云社票务系统旨在解决传统相声订票方式费时费力的问题,提供便捷的在线订票平台。系统采用Java技术、MySQL数据库,结合B/S架构,确保数据安全性和操作简便性。用户可轻松查询、预订相声票务信息,管理员则能高效管理票务和会员信息。该系统功能齐全、运行稳定,适用于现代信息化生活需求,有效提升德云社的票务管理效率与用户体验。
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
Java 数据库连接 Maven
SSM框架整合图书管理项目
这篇文章是关于SSM框架整合到图书管理项目的详细教程,涵盖了从Maven项目构建、依赖导入、数据库连接、配置文件编写、实体类和接口实现到SpringMVC整合的完整步骤。
SSM框架整合图书管理项目
|
前端开发 Java API
【IDEA版】简单快速上手撸Struts框架
【IDEA版】简单快速上手撸Struts框架
908 1
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
282 1
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
388 1

热门文章

最新文章