文档章节

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

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

3 月,跳不动了?>>>

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

© 著作权归作者所有

冯文议

冯文议

粉丝 13
博文 49
码字总数 50330
作品 1
成都
高级程序员
私信 提问
加载中

评论(0)

使用SSM+Solr优雅的实现电商项目中的搜索功能

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

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

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

TyCoding
2018/08/31
338
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
488
0
SpringBoot整合Drools7.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/88413946 SpringBoot相信大家都很熟悉了,这里小编就再进行讲述了,由于现在用S...

MorganLai
2019/03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 小妹妹你喝快点,我等着捡易拉罐呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @莱布妮子 :分享二手玫瑰的单曲《允许部分艺术家先富起来》 《允许部分艺术家先富起来》- 二手玫瑰 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
13分钟前
14
1
mysql默认事务隔离级别

引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:“讲讲mysql有几个事务隔离级别?” 你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读” 面试官:“为...

HJCui
今天
29
0
并发编程概念篇-02并行与并发

并行与并发区别举个例子,如果有一条高速公路上面有4条车道,那么最大的并行车辆就是4辆,此条高速公路同时并排行驶的车辆小于等于4辆的时候,车辆就可以并行行驶,CPU也是这个原理,一个CPU...

wangmob
今天
31
0
如何删除所有已合并的Git分支? - How can I delete all Git branches which have been merged?

问题: I have many Git branches. 我有很多Git分支。 How do I delete branches which have already been merged? 如何删除已经合并的分支? Is there an easy way to delete them all inst......

技术盛宴
今天
34
0
【Maven】maven 插件开发实战

<a name="lkFfi"></a> 前言 <br />众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。包括我们日常使用到的类似 install、clean、deploy、compiler。。。这些命令,...

K1W1
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部