天天看点

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

文章目录

  • 前言
    • 什么是SSM框架
    • 准备工作
  • 正题
    • 1.创建项目
      • 打开IDEA,创建新项目
      • 如图创建Maven WebApp项目
      • 补全项目信息
      • 选择之前准备好的Maven
      • 选择项目存放的位置,然后点击Finish完成项目创建
      • 创建好的项目如图所示
    • 2.完善项目
      • 新建项目所需文件夹
      • 给文件夹赋属性,让idea识别各个目录的作用
      • 添加SSM框架所需依赖
      • 配置web.xml
      • 创建框架所需的配置文件
      • 配置框架所需的配置文件内容
  • 测试
    • 1.创建测试所需的Java类
    • 2.创建类的Mybatis的配置文件
    • 3.修改index.jsp
    • 4.配置Tomcat
    • 5.配置数据库
    • 6.运行项目
  • 文章结束

前言

什么是SSM框架

SSM框架是spring MVC,spring和mabatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层

准备工作

准备好以下工具:

1.IntelliJ IDEA

2.jdk1.8

3.Maven

4.Tomcat8

正题

1.创建项目

打开IDEA,创建新项目

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图创建Maven WebApp项目

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

补全项目信息

翻译:

GroupID :是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构

ArtifactID :是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称

version : 版本号

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

选择之前准备好的Maven

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

选择项目存放的位置,然后点击Finish完成项目创建

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

此时右下角会弹出提示框,选择第二个选项,意思是更改pom文件后就会自动下载依赖包

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

创建好的项目如图所示

项目结构介绍:

【.idea文件夹】和是idea的一些配置文件,不用管他

【src文件夹】就是我们放项目代码的地方

【pom.xml】是maven的配置文件,我们需要什么jar包,都可以在里面添加依赖,然后maven就会自己帮我们下到本地仓库里面

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

2.完善项目

新建项目所需文件夹

详细做法:

在src文件夹下新建test文件夹

在src>test文件夹下新建java文件夹

在src>main文件夹下新建java文件夹

在src>main文件夹下新建resources文件夹

文件夹的用途:

test : 用来放测试文件

java : 用来放java文件

resources : 用来放各种框架的配置信息文件

右键新建文件夹

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

建好的文件夹如图所示

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

给文件夹赋属性,让idea识别各个目录的作用

选择File-Project Structure

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

切换到Modules

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图点击java文件夹,然后点击上方Source

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图点击resources文件夹,然后点击上方Resource

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图点击text文件夹下的java文件夹,然后点击上方Tests。搞定后点OK保存并关闭

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

添加SSM框架所需依赖

替换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.chatRobot</groupId>
  <artifactId>ChatRobot</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ChatRobot Maven Webapp</name>
  <url>http://maven.apache.org</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>
           

替换好的pom.xml文件如图所示,此时maven会自动下载依赖,第一次可能比较慢,耐心等待加载完再进行下一步

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

配置web.xml

打开位于main>webapp>WEB-INF文件夹下的web.xml

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

替换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>ChatRobot</display-name>
  <description>ChatRobot_Alpha_0.0.1</description>

  <!-- 编码过滤器 -->
  <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.jsp</welcome-file>
  </welcome-file-list>

</web-app>
           

替换后的文件如图所示

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

创建框架所需的配置文件

在resources文件夹下创建 logback.xml、jdbc.properties

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束
IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

第二个文件jdbc.properties是同样的操作创建,如图所示我们已经建好这两个文件

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

在resources文件夹下创建 spring-mybatis.xml、spring-mvc.xml

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束
IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

第二个文件spring-mvc.xml是同样的操作创建,如图所示我们已经建好这两个文件

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

配置框架所需的配置文件内容

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>
           

jdbc.properties

这里请填写自己的数据库地址以及库名、账户和密码

jdbc.driver=com.mysql.jdbc.Driver
#数据库地址
jdbc.url=jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=utf8
#用户名
jdbc.username=xxxx
#密码
jdbc.password=xxxxx
#最大连接数
c3p0.maxPoolSize=30
#最小连接数
c3p0.minPoolSize=10
#关闭连接后不自动commit
c3p0.autoCommitOnClose=false
#获取连接超时时间
c3p0.checkoutTimeout=10000
#当获取连接失败重试次数
c3p0.acquireRetryAttempts=2
           

spring-mybatis.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:tx="http://www.springframework.org/schema/tx"
       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/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 扫描service包下所有使用注解的类型 -->
    <context:component-scan base-package="com.moli.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"/>
        <!-- 扫描model包 使用别名 -->
        <property name="typeAliasesPackage" value="com.moli.model"/>
        <!-- 扫描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="com.moli.dao"/>
    </bean>

    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 配置基于注解的声明式事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>
           

spring-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-3.0.xsd">

    <!-- 扫描web相关的bean -->
    <context:component-scan base-package="com.moli.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>

</beans>
           

测试

1.创建测试所需的Java类

如图创建包和所需的测试类

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

类的代码如下:

CsPoJo

package com.moli.model;
public class CsPoJo {

    private long id;
    private String name;
    
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
           

CsDao

package com.moli.dao;

import com.moli.model.CsPoJo;

public interface CsDao {
    CsPoJo selectCs(long id);
}
           

CsService

package com.moli.service;

import com.moli.model.CsPoJo;

public interface CsService {

    public CsPoJo selectCs(long userId);

}
           

CsServiceImpl

package com.moli.service.imp;

import com.moli.dao.CsDao;
import com.moli.model.CsPoJo;
import com.moli.service.CsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@Service("csService")
public class CsServiceImpl implements CsService {

    @Resource
    private CsDao userDao;
    public CsPoJo selectCs(long userId) {
        return this.userDao.selectCs(userId);
    }
}
           

CsController

package com.moli.controller;

import javax.servlet.http.HttpServletRequest;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.moli.model.CsPoJo;
import com.moli.service.CsService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Controller
@RequestMapping("/Cs")
public class CsController {

    @Resource
    private CsService csService;

    @RequestMapping("/ceshi.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"));
        CsPoJo user = this.csService.selectCs(userId);
        ObjectMapper mapper = new ObjectMapper();
        response.getWriter().write(mapper.writeValueAsString(user));
        response.getWriter().close();
    }
}
           

2.创建类的Mybatis的配置文件

在resources下创建mapper文件夹,然后在文件夹中创建csDao.xml

csDao.xml 内容为:

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

<!-- 设置为UserDao接口方法提供sql语句配置 -->
<mapper namespace="com.moli.dao.CsDao">

    <select id="selectCs" resultType="CsPoJo" parameterType="long">
        SELECT * FROM cstb WHERE id = #{id}
    </select>

</mapper>
           

3.修改index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<script>
    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", "Cs/ceshi.do", true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send("id=1");
    }
</script>
<body>
<p id="test">Hello World!</p>
<button type="button" onclick="selectUser()">测试</button>
</body>
</html>
           

4.配置Tomcat

点击右上角Add

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图选择

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图选择

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

选择之前准备好的Tomcat路径

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

如图选择

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

选择好之后点击OK

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

5.配置数据库

数据库如图所示,可以自行搭建并创建测试数据

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

6.运行项目

点击箭头运行项目

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

点击测试按钮可以看到正常查出数据

IntelliJ IDEA 搭建 JavaWeb SSM 框架前言正题测试文章结束

文章结束

这是我通过学习对知识的整理及备忘,本博客的所有内容,仅是自己的一些学习笔记,如有错误,欢迎指正。如有侵权,请告知修改。