导言
技术栈:springmvc+spring+mybatis+mysql
开发工具:IDEA
开发语言:JAVA
数据库:mysql
一、创建 JAVA SE 的 maven 工程
使用 IDEA 项目创建向导进行创建:
添加 maven 依赖,在 pom.xml 中添加如下内容:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.12</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
</dependencies>
二、将 JAVA SE 工程转化为 WEB 工程
在 pom.xml 中添加如下内容:
<packaging>war</packaging>
右键点击工程,选择 Open Module Settings:
选择 Modules——Web——Web Resource Directories
为工程添加 webapp 目录,点击 OK:
点击 Yes:
点击 Deployment Descriptors 中的“ +”,添加 web.xml 文件:
将默认路径 /ssm/WEB-INF/web.xml 修改为 /ssm/src/main/webapp/WEB-INF/web.xml,点击 OK:
完成上述后,工程目录结构如下:
三、增加 SSM 框架的配置文件
1、WEB 配置文件 applicationContext.xml
创建 spirng-mvc 和 spring 的配置文件(内容暂时为空,后续添加),文件创建方法如下:
在 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_4_0.xsd"
version="4.0">
<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>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<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>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
把代码包创建好:
由于 mapper 目录在 java 目录下,不在 resource 目录下,所以需要在 web.xml 中增加如下配置:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
2、spring 配置文件 applicationContext.xml
添加包扫描:
<context:component-scan base-package="org.javaboy.ssm" use-default-filters="true">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
在 resource 目录下创建 mysql 数据库配置文件 db.properties :
db.username=root
db.password=admin123
db.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=UTF-8&serverTimeZone=Asia/Shanghai
db.driverClass=com.mysql.cj.jdbc.Driver
在配置文件中引入 db.properties:
<context:property-placeholder location="classpath:db.properties"/>
添加 dataSource、mybatis 等相关配置:
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
<property name="url" value="${db.url}"/>
<property name="driverClassName" value="${db.driverClass}"/>
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="org/javaboy/ssm/model"/>
<property name="mapperLocations">
<list>
<value>classpath*:org/javaboy/ssm/mapper/*.xml</value>
</list>
</property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="mapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
<property name="basePackage" value="org.javaboy.ssm.mapper"/>
</bean>
通过上述步骤,完成了 spring 配置文件的内容添加。
3、springmvc 配置文件 spring-servlet.xml
在配置文件中添加如下内容:
<context:component-scan base-package="org.javaboy.ssm" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<mvc:annotation-driven/>
四、增加相关测试代码
1、User类
在 model 目录下新增 User 类:
package org.javaboy.ssm.model;
public class User {
private Long id;
private String username;
private String address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", address='" + address + '\'' +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2、UserMapper 接口
在 mapper 目录下新增 UserMapper 接口,并在接口中新增 getAllUsers 方法:
package org.javaboy.ssm.mapper;
import org.javaboy.ssm.model.User;
import java.util.List;
public interface UserMapper {
List<User> getAllUsers();
}
3、UserMapper.xml 文件
在 mapper 目录下新增 UserMapper.xml 文件,并在文件中配置 getAllUsers 方法对应的 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="org.javaboy.ssm.mapper.UserMapper">
<select id="getAllUsers" resultType="User">
select * from user
</select>
</mapper>
4、UserService 类
在 service 目录下新增 UserService 类,并将 UserMapper 类的实例注入进来:
package org.javaboy.ssm.service;
import org.javaboy.ssm.mapper.UserMapper;
import org.javaboy.ssm.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
UserMapper userMapper;
public List<User> getAllUsers(){
return userMapper.getAllUsers();
}
}
5、UserController 类
在 controller 目录下新增 UserController 类,并将 UserService 类的实例注入进来:
package org.javaboy.ssm.controller;
import org.javaboy.ssm.model.User;
import org.javaboy.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/users")
public List<User> getAllUsers(){
return userService.getAllUsers();
}
}
五、验证测试
1、配置本地 tomcat
选择 Tomcat Server——Local
修改 Tomcat 名字,配置需要部署启动的工程
选择 ssm:war
将 ssm:war 修改为 /
点击OK,完成配置
2、测试结果
启动 Tomcat,项目加载成功
输入 localhost:8080/users,返回预期结果