零XML配置 SpringMVC 进阶之路 - 搭建环境

写了快两年的Java代码了,发现自己居然不会搭建一套Spring mvc环境出来,只会添砖加瓦,说来就惭愧了,为了弥补这点的缺陷,也为了以后更好的借助已有的SpringMVC项目学习更多的知识,我决定从零搭建一套自己的SpringMVC。

网上搜索大部分都是基于XML配置的环境搭建,基于XML大部分是因为历史项目的原因无法切换成基于JavaConfig来进行配置,但是基于JavaConfig是未来的趋势,所以本系列的文章是零XML配置的,喜欢XML请自行搜索其他问问。

使用的基础环境如下:
- 系统: MacOS(也就是Linux系统)
- java版本: 1.8.0_151,下载地址
- Tomcat版本: 8.5.20, 下载地址
- Maven版本: 3.5.0,下载地址
- 开发工具: Intellij Idea

废话不多说,开始整起。

本篇的文章是搭建一套最简单的,只有HelloWorld的项目,目标是浏览器中输入一个URL,返回”HelloWorld”。

新建项目

现在一个普通的Maven项目,不要使用Archtype生成:
这里写图片描述

填写自己的GroupId和ArtifactId,一路Next。

修改pom.xml

新生成的pom.xml,只有项目的groupId和artifactId:

   <groupId>com.cyf</groupId>
    <artifactId>base</artifactId>
    <version>1.0-SNAPSHOT</version>

增加依赖包

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.13.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>

其中spring-webmvc就是我们要用的核心包,我们使用Spring4系列中最新的一个版本。
javax.servlet-api是基础包,servlet的很多依赖都在这个包里,需要引入,我们使用了3.1.0。
如果要使用其他版本的,请到maven库中搜索。

增加编译插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

增加packaging

一定要增加打包类型

    <packaging>war</packaging>

由于我没有增加打包类型为: war导致配置tomcat时无法找到Artifact,在网上找了很多解决方案都不行,加了这个配置就好。

增加WebAppInitializer

新建我们自己的package,然后增加类: MyWebAppInitializer

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    //Spring 上下文配置
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{RootConfig.class};
    }

    //Servlet上下文配置
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{ServletConfig.class};
    }

    //mapping配置
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

增加配置类

Spring上下文配置类

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.cyf.base")
public class RootConfig {
}

@Configuration:
这是一个空类,只有一些注解其中,@Configuration标注这个类是配置类,后续我们会在这个类中添加一些Bean。
@EnableWebMvc:
启用WebMvc。
@ComponentScan(basePackages = “com.cyf.base”)
自动扫描com.cyf.base下的所有类。

注意,@EnableWebMvc和@ComponentScan(basePackages = “com.cyf.base”) 一定要放在一起,否则会有问题,项目能启动,但是拦截不到请求。

Servlet上下文配置类

@Configuration
public class ServletConfig extends WebMvcConfigurerAdapter {
}

这里的配置是继承了WebMvcConfigurerAdapter,它有很多默认的配置,不需要我们实现,当然我们可以覆盖它的默认实现,这里就不说了,后续有需要,我们再慢慢覆盖。

增加一个Controller

@RestController
@RequestMapping("/api")
public class TestController {
    @GetMapping("/hello")
    public Object hello(){
        return "helloWorld";
    }
}

不用详细说了,稍微开发过SpringMvc的都清楚。

部署

这里直接在Idea部署到了tomcat上,这里就不重复造轮子了,到网上随便找找有很多,比如Idea部署tomcat

运行

运行后,浏览器中输入:
http://localhost:8080/api/hello

输出结果

到此为止,一个最最简单的基于JavaConfig配置的SpringMVC就出来了,是不是很简单。
最后附上项目结构图:
项目结构图

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值