基于maven搭建一个ssm的web项目的详细图文教程

下面是基于Maven搭建SSM(Web)项目的详细攻略:

前置条件

  • JDK 1.8+ 安装并配置好环境变量
  • Maven 安装并配置好环境变量
  • IDE,比如 IntelliJ IDEA 或 Eclipse 等可选

步骤一:创建Maven项目

  1. 打开IDE,选择创建Maven项目
  2. 选择Maven-archetype-webapp模板,输入项目信息,点击创建

步骤二:添加依赖

  1. 在 pom.xml 文件中添加 Spring、SpringMVC 以及 MyBatis 的依赖,如下所示:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.10</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.10</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>
  1. 在 pom.xml 文件中添加数据库驱动依赖(以 MySQL 为例):
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>
  1. 在 pom.xml 文件中添加 Servlet 和 JSP 的依赖,这些依赖很重要,因为它们是 Web 项目最基本的组件,如下所示:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.3</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

步骤三:配置Web.xml

  1. 在 src/main/webapp/WEB-INF 目录下创建 web.xml 文件,将以下内容添加到文件中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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 https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_1.xsd">

    <display-name>ssm-webapp</display-name>

    <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>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

步骤四:配置 applicationContext.xml

  1. 在 src/main/resources 目录下创建 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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="jdbc:mysql://localhost:3306/your_db?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;useSSL=false"/>
        <property name="username" value="your_username"/>
        <property name="password" value="your_password"/>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.your_package.dao"/>
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

</beans>

步骤五:配置 mvc.xml

  1. 在 src/main/resources 目录下创建 mvc.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:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context.xsd
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.your_package.controller"/>

    <mvc:annotation-driven/>

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

注意:这里 InternalResourceViewResolver 是视图解析器,即将返回的 ModelAndView 转换为 JSP 页面并渲染出来。

示例一:编写Controller

package com.your_package.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("message", "Hello, world!");
        return "index";
    }
}

在这个示例中,我们创建了一个 IndexController,并在其中添加了一个 index 方法。这个方法用 @GetMapping 注解标记,表示当以 GET 方式请求网站根路径时,将执行 index 方法。然后我们使用 Model 类型的参数向视图传递了一个名为 "message" 的键值对,值为 "Hello, world!"。最后,该方法返回一个名为 "index" 的字符串,表示返回的视图名为 index.jsp。

示例二:编写Mapper

package com.your_package.dao;

import com.your_package.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface UserMapper {

    void addUser(User user);

    User getUserById(int id);
}

在这个示例中,我们创建了一个 UserMapper 接口,并使用 @Mapper 和 @Repository 注解进行标注。然后我们定义了两个方法,addUser() 和 getUserById(),它们将映射到 UserMapper.xml 配置文件中的 SQL 语句。

以上就是基于 Maven 搭建 SSM(Web) 项目的详细攻略,并提供了两个示例。如果有其他问题,欢迎追问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于maven搭建一个ssm的web项目的详细图文教程 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 使用Spring Boot的原因解析

    使用Spring Boot的原因解析 前言 Spring Boot 是 Spring 家族的一个全新项目,它通过提供自动配置、快速开发等一系列优化,使得 Spring 应用的开发更加简单、快速、便捷。那么为什么我们要选择使用 Spring Boot 呢?下面本文将从以下几个方面为大家详细介绍 Spring Boot 的使用原因。 解析 1. 自动配置 Spr…

    Java 2023年5月15日
    00
  • JVM的内存回收及常见算法小结

    JVM的内存回收及常见算法小结 什么是垃圾回收? 垃圾回收是指通过某些算法与过程,自动回收程序中不再被使用且占用内存的变量及对象等资源。JVM内置了垃圾回收机制,来管理Java程序使用的内存。垃圾回收可以帮助程序员有效地管理内存,减少内存泄露等问题。 JVM内存模型 JVM将内存分为三个区域:程序计数器、Java栈与Java堆。 程序计数器:记录当前线程运行…

    Java 2023年6月16日
    00
  • 详解JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)

    详解JDK自带javap命令反编译class文件和Jad反编译class文件 什么是javap命令和Jad反编译? javap命令是JDK自带的反编译工具,用于反编译class文件。 Jad是一款免费的Java反编译器,可以将class文件反编译为Java源代码。 使用javap命令反编译class文件 打开命令行工具,进入.class文件所在的目录。 键入…

    Java 2023年5月19日
    00
  • java中面向对象的概念及知识点总结

    Java中面向对象的概念及知识点总结 一、面向对象的概念 面向对象(Object-oriented,O-O)是一种软件开发思想,它主要强调将问题看作是由各种不同对象之间的交互关系构成的。 O-O 中的“对象”是指拥有属性(变量)和方法(函数)的实体。这些对象通过通信来完成特定任务。O-O 中的“类”是指一组具有相同属性和方法的对象的抽象描述。在 Java 中…

    Java 2023年5月26日
    00
  • SpringBoot注入自定义的配置文件的方法详解

    当我们开发一个SpringBoot应用时,我们通常需要使用一些配置文件来配置我们的应用程序,例如application.properties或application.yml文件。但是,有时我们需要注入我们自己的配置文件,例如redis.properties或mysql.properties等。那么,本文将介绍如何将自定义配置文件注入到SpringBoot应用…

    Java 2023年5月26日
    00
  • IDEA2022性能优化的一些设置技巧

    IDEA2022性能优化的一些设置技巧 1. 开启IDEA的内存优化 默认情况下,IDEA分配的内存大小为128M,这个内存对于一些大型项目来说,显然是远远不够的。我们可以将内存设置为512M或者更高,以提高IDEA的性能。 要修改IDEA的内存设置,可以通过以下步骤操作: 打开IDEA,选择Help -> Edit Custom VM Options…

    Java 2023年5月20日
    00
  • Java中捕获线程异常的几种方式总结

    如何在Java中捕获线程异常是一个技术难点,但Java提供了几种捕获线程异常的方式,下面我们来详细说明。 抛出异常和捕获异常 在Java中,异常是指在程序运行时发生错误导致的中断或异常情况。Java中通常使用try-catch语句捕获异常。try语句内包含可能导致异常的代码块,而catch语句则负责捕获和处理异常。 一个最简单的异常捕获代码如下: try {…

    Java 2023年5月19日
    00
  • java多线程消息队列的实现代码

    为了实现Java多线程消息队列的功能,可以通过以下步骤完成: 第一步:定义消息类 定义一个消息类,可以包含消息ID、消息内容、消息时间等属性。 public class Message { private int messageId; private String content; private Date createTime; public Messag…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部