2020最新版SSM框架整合教程

让我来详细讲解一下“2020最新版SSM框架整合教程”的完整攻略。

1. 准备工作

在整合SSM框架之前,需要安装JDK、Maven以及相应的开发工具,比如IntelliJ IDEA或Eclipse,还需要准备好Web Server,比如Tomcat或Jetty。

2. 创建Maven项目

创建一个Maven Web项目,添加以下依赖:

<dependencies>
    <!--Spring相关依赖-->
    <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-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--MyBatis相关依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>${mybatis.version}</version>
    </dependency>

    <!--Servlet、JSP相关依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>${jsp-api.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${standard.version}</version>
    </dependency>

    <!--数据库相关依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>

    <!--日志相关依赖-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
</dependencies>

其中,变量版本号需要根据实际情况进行修改。

3. 配置Web.xml

在web.xml中添加DispatcherServlet和ContextLoaderListener:

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/dispatcherServlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

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

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

其中,DispatcherServlet通过参数contextConfigLocation指定了DispatcherServlet的上下文,而ContextLoaderListener通过参数contextConfigLocation指定了Spring的根上下文。

4. 配置root-context.xml

在Spring的根上下文中,配置数据库连接、事务管理器以及MyBatis相关内容:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8" />
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
    <property name="user" value="root" />
    <property name="password" value="root" />
</bean>

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

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="your.package.name.model" />
    <property name="mapperLocations" value="classpath:your/package/name/mapper/*.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="your.package.name.mapper" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

其中,dataSource中的jdbcUrl、user和password需要根据实际情况进行修改。typeAliasesPackage指定MyBatis实体类的包名,mapperLocations指定MyBatis Mapper的xml文件路径。

5. 配置dispatcherServlet-context.xml

在DispatcherServlet的上下文中,注册Controller:

<context:component-scan base-package="your.package.name.controller" />

<mvc:annotation-driven />

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

其中,component-scan指定Controller的包名,annotation-driven启用Spring MVC注解驱动,InternalResourceViewResolver指定JSP的前缀和后缀。

6. 编写Controller和Mapper

以下是一个简单的Controller示例:

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/list")
    public ModelAndView userList() {
        ModelAndView model = new ModelAndView("user/list");
        List<User> userList = userService.getAllUsers();
        model.addObject("userList", userList);
        return model;
    }

    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public ModelAndView addUserPage() {
        ModelAndView model = new ModelAndView("user/form");
        model.addObject("user", new User());
        return model;
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ModelAndView addUser(@ModelAttribute("user") User user) {
        userService.addUser(user);
        return userList();
    }

    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
    public ModelAndView deleteUser(@PathVariable("id") Integer id) {
        userService.deleteUser(id);
        return userList();
    }
}

其中,@Controller和@RequestMapping用于声明Controller和映射URL,@Autowired用于注入UserService。

以下是一个简单的Mapper示例:

<?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="your.package.name.mapper.UserMapper">
    <resultMap id="userMap" type="your.package.name.model.User">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="age" property="age" />
    </resultMap>

    <select id="selectAllUsers" resultMap="userMap">
        SELECT * FROM user
    </select>

    <insert id="insertUser" parameterType="your.package.name.model.User">
        INSERT INTO user(name, age) VALUES(#{name}, #{age})
    </insert>

    <delete id="deleteUser" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

其中,namespace指定Mapper的命名空间,resultMap指定结果映射,select和insert、delete指定SQL语句。

以上就是“2020最新版SSM框架整合教程”的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:2020最新版SSM框架整合教程 - Python技术站

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

相关文章

  • Java Agent的作用是什么?

    Java Agent是一种Java方式用于修改现有Java应用程序类的机制。Java Agent通过Java虚拟机(JVM)启动时运行的预定义类的帮助,可以动态注入代码到应用程序的ClassLoader中,从而以运行时方式改变应用程序的行为,例如:收集应用程序的性能数据、记录调试日志等。 以下是使用Java Agent的步骤: 步骤一:创建Java Agen…

    Java 2023年5月11日
    00
  • Java正则表达式处理特殊字符转义的方法

    当我们使用Java正则表达式处理字符串时,需要注意特殊字符的转义问题。下面是处理特殊字符转义的方法,包括两个示例说明: 1.将特殊字符用反斜杠转义 在Java正则表达式中,一些特殊字符具有特殊含义,比如.需要匹配除了换行符以外的任意字符,而不是只匹配.字符。所以,我们需要使用反斜杠(\)将这些特殊字符转义,表示想要匹配这些特殊字符而非具有特殊含义。 例如,要…

    Java 2023年5月27日
    00
  • Java中的逃逸问题心得

    Java中的逃逸问题心得 在Java中,对象的生命周期是由GC负责控制的,当对象不再被程序引用时,GC会将其回收,释放内存。但是,Java中还存在一个逃逸问题,当对象被其他不相关的对象引用时,该对象的生命周期就会扩展,造成不必要的内存开销,降低程序的性能。 什么是逃逸分析? 在了解逃逸问题之前,我们需要先了解逃逸分析。逃逸分析是一种指令流分析技术,其主要目的…

    Java 2023年5月26日
    00
  • Java BIO实现聊天程序

    下面我就为您详细讲解“Java BIO实现聊天程序”的完整攻略。首先,我们需要了解什么是BIO(Blocking IO)。 什么是BIO BIO是Java中IO的一种传统模型,它与操作系统提供的Input/Output是相似的。BIO的特点是同步并阻塞,即在执行输入输出过程中,如果没有数据读取,或者无法数据输出,那么将会阻塞在那里,直到有数据读取或输出。BI…

    Java 2023年5月23日
    00
  • java获取Date时间的各种方式汇总

    Java获取Date时间的各种方式汇总 Date类作为Java中常用的日期时间操作类,提供了多种获取时间的方式。本文将为大家详细介绍Java中常见的Date时间获取方式,希望对大家有所帮助。 currentTimeMillis() currentTimeMillis()方法返回当前系统时间的毫秒数。可以通过将这个时间链接到Date构造函数中来创建对应的Dat…

    Java 2023年5月20日
    00
  • 在IntelliJ IDEA 搭建springmvc项目配置debug的教程详解

    下面是关于在IntelliJ IDEA搭建SpringMVC项目配置Debug的教程详解,包含两个示例说明。 在IntelliJ IDEA搭建SpringMVC项目配置Debug IntelliJ IDEA是一款功能强大的Java集成开发环境,可以帮助我们快速搭建SpringMVC项目并进行调试。在本文中,我们将介绍如何在IntelliJ IDEA中搭建Sp…

    Java 2023年5月17日
    00
  • Spring Boot修改内置Tomcat默认端口号的示例

    请听我详细讲解 “Spring Boot修改内置Tomcat默认端口号的示例”的完整攻略。 一、Spring Boot如何修改Tomcat默认端口号 Spring Boot作为一种快速开发框架,其内置了Tomcat作为默认的Web容器。而默认的端口号是8080端口,但有时候需要把它修改为其他端口号。如何修改呢? 在Spring Boot中修改Tomcat默认…

    Java 2023年5月19日
    00
  • springboot整合JPA过程解析

    下面是对“springboot整合JPA过程解析”的完整攻略。 一、JPA介绍 JPA是Java Persistence API的缩写,是JavaEE环境下的持久化框架。它的目标是提供一种简单、统一的持久化方式,使得开发人员不需要过多关注数据访问细节,只需要关注业务逻辑的实现。 二、Spring Boot整合JPA 创建Maven项目并添加Spring Bo…

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