文档章节

Spring | 手把手教你SSM最优雅的整合方式

冯文议
 冯文议
发布于 09/20 01:01
字数 705
阅读 20
收藏 29

HEY

本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。

MODULE

新建一个Maven工程。

Maven Web App

不论你是什么工具,选这个就可以了,然后next,直至finish。

POM.XML

引jar是一个难点,都是一股脑的引入,这是我们开始的第一步,很关键,我们分开说。

先看Spring,我们可能需要的jar:

<!-- spring核心依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring ioc依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring aop依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring 扩展依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring web相关依赖 -->
        <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>

        <!-- spring test相关依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring依赖  end-->

大抵就是这样,当然,还有其他的作为辅助开发,这个可以看源码,然后我们看一下版本。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

    <junit.version>5.3.1</junit.version>
    <lombok.version>1.18.2</lombok.version>
    <jetty.version>9.4.12.v20180830</jetty.version>
    <spring.version>5.0.9.RELEASE</spring.version>
    <JavaLib.version>1.0.4.RELEASE</JavaLib.version>
    <slf4j.version>1.8.0-beta2</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
</properties>

WEB.XML

先配请求拦截,意思是说,这个请求交给Spring管理。

<!-- 配置DispatcherServlet -->
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

总有人会遇到乱码问题,那我们也解决一下。

<!-- 编码  -->
<filter>
    <filter-name>characterEncodingFilter</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>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

最后,我们加一个首页响应页面路径

<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>

SPRING.XML

配一个扫描

<!-- 开启SpringMVC注解模式 -->
<mvc:annotation-driven />

<!--向容器自动注入配置-->
<context:annotation-config />

<!--将静态资源交由默认的servlet处理-->
<mvc:default-servlet-handler />

<!-- 扫描web相关的bean -->
<context:component-scan base-package="com.fengwenyi.springweb.controller" />

用springmvc的人,大抵都会用到页面,那我们也配一下。

<!-- configure the InternalResourceViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      id="internalResourceViewResolver">
    <!-- 前缀 -->
    <property name="prefix" value="/WEB-INF/pages/" />
    <!-- 后缀 -->
    <property name="suffix" value=".html" />
</bean>

CODE

package com.fengwenyi.springweb.controller;

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

/**
 * @author Wenyi Feng
 * @since 2018-09-18
 */
@Controller
public class IndexController {

    @GetMapping("/")
    public String index() {
        return "index";
    }
}

RUN

运行,会自动跳转这个页面

http://localhost:8080/

Hello World

哦,对了,我已经写好了html页面。

PROJECT

我们看一下工程目录结构吧

project

GITHUB

最后的最后,你是不是先问我的测试代码在哪里?

好吧,看这里:

https://github.com/fengwenyi/ssm/tree/master/springweb

© 著作权归作者所有

共有 人打赏支持
冯文议
粉丝 9
博文 37
码字总数 30938
作品 0
成都
高级程序员
使用SSM+Solr优雅的实现电商项目中的搜索功能

在学习了Redis&Spring-Data-Redis入门和Solr&Spring-Data-Solr入门后,接下来就该是项目实战了。这次我们用Vue.JS和ElementUI写前端页面,优雅的整合SSM-Shiro-Redis-Solr框架。 手摸手教你优...

TyCoding
09/25
0
0
Spring、SpringMVC、Mybatis整合之工程的搭建

SSM框架整合之环境配置部分 学习完了Spring、SpringMVC、Mybatis框架,我们就可以尝试系统将三者进行整合。整合并不复杂,我们只需要实现最基础的配置,即可轻松的掌握SSM框架是如何实际项目...

TyCoding
08/31
0
0
ZHENFENGSHISAN/perfect-ssm

Quick Start 项目简介 ssm系列 ssm-demo:Spring+SpringMVC+Mybatis+easyUI整合 perfect-ssm:RESTful API+redis缓存 ssm-cluster:前后端分离+集群部署 ssm-dubbo:dubbo服务化 ssm-micro-se......

ZHENFENGSHISAN
2017/09/18
0
0
推荐几个自己写的Java后端相关的范例项目(转载)

http://wosyingjun.iteye.com/blog/2312553 这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易...

指尖的舞者
2016/09/27
147
0
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程...

Carl_
2015/07/17
0
3

没有更多内容

加载失败,请刷新页面

加载更多

arcgis jsapi接口入门系列(2):图层基础操作

//图层相关demo layerFun: function () { //获取地图的所有图层(不包括的图层类型:底图图层(basemaps)) let layers = this.map.layers; ...

canneljls
29分钟前
1
0
MySQL忘记root密码--不重启mysqd重置root密码

先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法。 1、s...

IT--小哥
31分钟前
1
0
php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,

升级到php7后, 发现旧的web系统有些问题, 查看后才发现原来是php7不再支持HTTP_RAW_POST_DATA 原来系统一些地方, 使用$GLOBALS[‘HTTP_RAW_POST_DATA’]来获取数据, 在php7里无法获取了 ...

15834278076
32分钟前
1
0
Android--拨打电话功能

Intent callIntent = new Intent(); callIntent.setAction(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + "4008823823")......

lanyu96
39分钟前
1
0
iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 3D立体相册,可以旋转的立方体 横竖屏切换工具,使用陀螺仪检测手机设备方向,锁屏状... Swift版Refresh(可以自定义多种样式)架构方面有所优化...

Android爱开源
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部