专栏首页MyTechnology纯Java搭建SpringMVC项目

纯Java搭建SpringMVC项目

1. 创建工程

这里我们创建一个普通Maven工程,并添加 SpringMVC 的依赖,这里环境的搭建需要用到 Servlet ,所以我们还需要引入 Servlet 的依赖,最终pom.xml 添加的内容如下:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

2. 添加SpringMVC配置类

@Configuration
@ComponentScan("com.xn2001")
public class SpringMVCConfig {

}

@Configuration标注这个类为配置类

@ComponentScan("com.xn2001"),扫描这个包下里面的Bean。

这里如果不需要在 SpringMVC 中添加其他的额外配置,这样就可以了。

3. 添加web.xml配置类

public class WebInit implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
        applicationContext.register(SpringMVCConfig.class);
        ServletRegistration.Dynamic springmvc= servletContext.addServlet("springmvc",new DispatcherServlet(applicationContext));
        springmvc.addMapping("/");
        springmvc.setLoadOnStartup(1);
    }
}

对比使用web.xml

    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

对比我们不难看出,使用xml或者类的方式,其本质都是一样的,添加入一个SpringMVC中央处理器,设置配置文件和初始化启动优先级,最后进行mapping。关于里面更深层的东西,我并不觉得自己多懂,也不想在这里长篇大论。

这里为什么没有写Spring配置类,如果你简单开发过SSM整合的项目,你不难发现其实直接将所有配置放到 SpringMVC 的配置中来完成是没有问题的。

4. 添加HelloController

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello,World";
    }
}

@RestController是@ResponseBody+@Controller的组合,

声明为控制类

且类下的所有方法的返回值(return)由Java对象转为json格式输出,这样我们在浏览器直接看到了内容了。

5. 启动项目

我们需要前往pom.xml中加入下面一行代码,设置打包方式。之后放入Tomcat容器启动项目即可。

<packaging>war</packaging>

如果你启动时首页是404说明已经成功了,这时候在网址后加入hello就看到我们输出的 Hello,World 了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringMVC在web.xml中的配置(引入springmvc)

    乐心湖
  • JSP五:学习Cookie

    Cookie 是服务端在 HTTP 响应中附带传给浏览器的⼀个小文本文件,⼀旦浏览器保存了某个 Cookie,在之后的请求和响应过程中,会将此 Cookie 来...

    乐心湖
  • Java自动重启jar包

    实现思路:获取某目录下的所有jar包,根据最新的修改时间来启动该jar包(当然你也可以写死路径,就连获取也不用了),运用多线程 执行cmd命令同时关闭原程序

    乐心湖
  • JFreeChart与struts框架冲突解决

    曼路
  • 内网漏洞探测扫描 - 信息搜集篇 - 渗透红队笔记

    当我们拿到了一台网络边界的时候,我们发现内网里还有很多台设备,比如邮件服务器,数据库服务器等等,我们可以通过网络边界做跳板对内网进行深层次的漏洞扫描。

    渗透攻击红队
  • 实例讲解利用python进行数据获取与数据预处理

    写在前面:本文从北京公交路线数据的获取和预处理入手,记录使用python中requests库获取数据,pandas库预处理数据的过程。文章在保证按照一定处理逻辑...

    超哥的杂货铺
  • 大四如何快速找到实习岗位

    不管你是培训派,自学派,还是学院派,去找实习,去找工作,首先一点,得能干活。不能说给你个需求必须几天完成吧,最起码可以完成一点工作(例如:写个下拉框,写个提交表...

    RDSunday
  • 超详细的Web 前端知识体系,等你来挑战!

    作为苦逼的IT行业,没日没夜的加班,妹纸也少的可怜,就算在一个班办公室或者一个部门,可能也只有一个妹纸,但估计也轮不到你来上,只能眼巴巴的放着光。可是程序猿一直...

    老九君
  • 2018年第九届C/C++ A组蓝桥杯省赛真题

    题目描述 小明被不明势力劫持。后莫名其妙被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。 他决定在x星战打工。好心...

    小二哥
  • Web前端知识体系精简

    Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从...

    Debian中国

扫码关注云+社区

领取腾讯云代金券