1、在idea中创建项目

点击new-project,点击Maven项目,勾选 creat from archetype ,找到`maven-archetype-webapp

写好相关信息

 点击下一步,需要检查maven环境

 点击后下载对应的插件,选择项目地址。

开始下载资源,直到显示创建成功。


2、修改编译版本

修改jdk版本,从1.7改成1.8(本人jdk是1.8)

修改POM的加载文件:

 在 settings中搜索 java Complier 把版本修改为1.8

 找到project Struct 把jdk版本改为1.8


3、完善项目包

当前缺少以下内容:

java文件夹 和 resources文件夹,以及test文件夹。因此在modules模块中进行添加

右键即可床架文件夹

文件夹创建好后如下: 

同时记得Mark便于管理(对应文件夹点击Mark as中的内容)。

 此时项目结构就搭建好了


 4、添加依赖

基于SSM项目 添加依赖(请根据实际项目需求添加,我给学生做演示的依赖有以下):

 <dependencies>

    <!--Spring核心容器-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!--Spring事务管理-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!--Spring的jdbc操作数据库的依赖,包含Spring自带数据源,jdbcTemplate-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!--Spring MVC的核心-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!--MyBatis核心-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
    </dependency>
    <!--MyBatis的分页插件-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.10</version>
    </dependency>
    <!--MyBatis整合Spring的依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.1</version>
    </dependency>
    <!--mysql数据库驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.16</version>
    </dependency>
    <!--Druid数据源-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.20</version>
    </dependency>
    <!--servlet-api :引入servlet的功能-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <!--jsp-api: jsp页面的功能包 -->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>
    <!-- JSTL标签库 -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <!--jackson坐标-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!--日志开始-->
    <!--引入日志的门脸-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.6.1</version>
    </dependency>
    <!-- 日志工具包 -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.10.0</version>
    </dependency>
    <!--日志核心包-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.10.0</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

刷新maven后即可完成依赖引入

5、配置mybatis-config.xml文件

因大部分内容会加载到spring的上下文中,故mybatis-config.xml留了一部分内容用于演示。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--root tag -->
<configuration>

    <!--处理数据库和类之间的字段关系-->
    <settings>
        <!--格式-->
       <!-- <setting name="" value=""/>-->
        <setting name="mapUnderscoreToCamelCase" value="true" />
        <!--缓存开启-->
        <setting name="cacheEnabled" value="true"/>
    </settings>

</configuration>

6、配置Spring 上下文加载文件

在创建spring config文件 

我命名为了spring-mvc.xml

文件中预加载以下配置内容:JDBC、视图解析器、注解驱动

JDBC(Mapper接口版本)

<!--数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <!--注意版本 如果是 com.mysql.jdbc.Driver 可能提示加载失败-->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/cloudlibrary?serverTimezone=UTC&amp;characterEncoding=utf8&amp;useUnicode=true&amp;useSSL=false"></property>
        <property name="username" value="root"></property>
        <property name="password" value="MYSQL"></property>
    </bean>

<!--session工厂-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--别名的路径扫描-->
        <!--<property name="typeAliasesPackage" value="com.jycj.pojo"></property>-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>

    <!--扫描接口生成代理实现类-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.jycj.mapper"></property>
    </bean>

注意:

1、Driver Class Name 如果是 `com.mysql.jdbc.Driver`  可能提示加载失败

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

2、在xml中 & 需要转义(用在url中)

 3、一定要配置生成的代理实现类,否则spring加载会失败;无法初始化Mapper接口

视图解析器

配置页面存放路径(以JSP为例)


    <!--配置视图解析器开始-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    <!--配置视图解析器结束-->

这样的话扫描的路径会在webapp文件夹下的/WEB-INF/下的pages路径 注意“/”的位置

配置注解驱动

 <!--处理编码以及json串的问题-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=utf-8</value>
                        <value>text/html;charset=utf-8</value>
                        <!-- application 可以在任意 form 表单里面 enctype 属性默认找到
                        <value>application/x-www-form-urlencoded</value>
                         -->
                    </list>
                </property>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json; charset=UTF-8</value>
                        <value>application/x-www-form-urlencoded; charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

 如果mvc提示下划线标红,记得导入依赖


7、配置web.xml

主要是加载前端控制器和编码的过滤

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Web Application</display-name>

  <filter>
    <filter-name>encoding</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>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <servlet>
    <!--配置Spring MVC 前端控制器-->
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>
      org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <!-- 配置初始化参数,用于读取 Spring MVC 的配置文件 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-mvc.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>


</web-app>

 这样可以由Spring帮助我们进行请求路径的匹配。

注意加载spring-mvc.xml一定要和你的加载文件名称和路径一致,否则报错

classpath:是从resources包开始查找的


8、创建业务代码简单运行(根据自身业务选择)

配置数据库 

根据自身业务配置;我的数据库加载了部分内容:

创建User类

完成属性和注入 

创建UserMapper接口

根据自身业务处理即可 

 完成业务代码编写:

查询用户和新增用户

创建UserService接口和实现类

简单模拟业务内容查询,登录,新增:

 配置实现类:

创建UserController控制器

简单返回JSON数据即可。

因在spring中配置了对应的JSON配置 所以直接返回的user对象会被解析成json。

9、添加自动扫描

在spring-mvc.xml中添加对应的扫描内容。


9、测试运行代码

配置tomcat Server

 运行结果:根据访问路径完成数据回复。


补充:修改mybatis-config和spring-mvc.xml 实现配置文件记载SQL

1、重新修改spring-mvc.xml文件,用于加载mapper地址

 <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--别名的路径扫描-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!--扫描mapper路径-->
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
        <!--设置实体包路径-->
        <property name="typeAliasesPackage" value="com.jycj.pojo"></property>
    </bean>

2、添加mapper文件

注意命名空间要对应到接口中

3、修改mapper只需要抽象方法即可。 

以上

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐