在IDEA中搭建最小可用SpringMVC项目(纯Java配置)

 更新时间:2019年12月05日 09:14:07   作者:墨悲丝染  
这篇文章主要介绍了在IDEA中搭建最小可用SpringMVC项目(纯Java配置),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 新建 SpringMVC 的 Web 项目

  • File - New - Project..
  • 勾选 SpringMVC 和 WebApplication ,点击Next
  • 填写 Project name : hello
  • 点击 Finish
  • IDEA 会自动下载所需的 SpringMVC 的 jar 包

2. 代码编写

代码参考 《Spring 实战》(第四版),本文和书中代码略有差异

删除不需要的配置文件

  • 删除 WEB-INF 下的 web.xml
  • 删除 WEB-INF 下的 dispatcher-servlet.xml
  • 删除 WEB-INF 下的 applicationContext.xml
  • 删除 web 下的 index.jsp

编写 JavaConfig 文件

  • 新建 package : com.yangrd.springmvc.config
  • 新建 配置文件 HelloWebAppInitializer.java
package com.yangrd.springmvc.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class HelloWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  @Override
  protected Class<?>[] getRootConfigClasses() {
    System.out.println("getRootConfig");
    return new Class<?>[]{RootConfig.class};
  }

  @Override
  protected Class<?>[] getServletConfigClasses() {
    System.out.println("getServletConfig");
    return new Class<?> []{WebConfig.class};
  }

  @Override
  protected String[] getServletMappings() {
    System.out.println("getServletMappings");
    return new String[]{"/"};
  }
}

新建配置文件 RootConfig.java

package com.yangrd.springmvc.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan(basePackages = {"com.yangrd.springmvc"},
    excludeFilters = {@ComponentScan.Filter(type= FilterType.ANNOTATION,value = EnableWebMvc.class)})
public class RootConfig {
}

新建配置文件 WebConfig.java

package com.yangrd.springmvc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan("com.yangrd.springmvc.controller")
public class WebConfig extends WebMvcConfigurerAdapter {
  @Bean
  public ViewResolver viewResolver(){
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".html");
    resolver.setExposeContextBeansAsAttributes(true);
    return resolver;
  }
  @Override
  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
    configurer.enable();
  }
}

编写 Controller

  • 新建 package : com.yangrd.springmvc.controller
  • 新建 文件 HelloController.java
package com.yangrd.springmvc.controller;

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

import static org.springframework.web.bind.annotation.RequestMethod.GET;

/**
 *
 */
@Controller //声明为一个控制器
public class HelloController {
  @RequestMapping(value = "/home",method = GET)//处理对 “/” 的 GET 请求
  public String hello(){
    return "hello"; //逻辑视图名为hello
  }
}

编写 view 文件

  • 在 WEB-INF 下新建文件夹 views
  • 在 views 文件夹下新建 hello.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Hello</title>
</head>
<body>
  hello world
</body>
</html>

3. Tomcat 的配置和启动

配置tomcat服务

  • 点击 IDEA 右上角 绿色的小锤子图标旁的 Add Configuration...
  • 在弹出页面中,点击加号
  • 选择 Tomcat Server - Local
  • 填写 Name : helloServer
  • 点击 Deployment - 点击 + ,选择 Artifact
  • 点击 Apply, OK

将Sping MVC 相关包放到 Web 工程 中的 lib 下

  • File - Project Structure...
  • 选择 Artifacts
  • 在右侧的 Available Elements 中 hello 下 有两个 Spring 的jar上,右键 选择 `Put into /WEB-INF/lib
  • 点击 Apply - OK

启动tomcat

这是启动tomcat 会报错

Error:(5, 8) java: 无法访问javax.servlet.ServletException
  找不到javax.servlet.ServletException的类文件

这时需要添加 javax.servlet-api

4. 测试

浏览器访问 http://localhost:8080/home

显示

hello world

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Java 类的加载机制

    详解Java 类的加载机制

    这篇文章主要介绍了Java 类的加载机制,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • SpringBoot+Security 发送短信验证码的实现

    SpringBoot+Security 发送短信验证码的实现

    这篇文章主要介绍了SpringBoot+Security 发送短信验证码的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 详解微信小程序 同步异步解决办法

    详解微信小程序 同步异步解决办法

    这篇文章主要介绍了详解微信小程序 同步异步解决办法的相关资料,需要的朋友可以参考下
    2017-06-06
  • Java中的反射机制详解

    Java中的反射机制详解

    这篇文章主要介绍了JAVA 反射机制的相关知识,文中讲解的非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2021-09-09
  • 详解SpringBoot时间参数处理完整解决方案

    详解SpringBoot时间参数处理完整解决方案

    这篇文章主要介绍了详解SpringBoot时间参数处理完整解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Synchronized 和 ReentrantLock 的实现原理及区别

    Synchronized 和 ReentrantLock 的实现原理及区别

    这篇文章主要介绍了Synchronized 和 ReentrantLock 的实现原理及区别,文章为荣啊主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 浅谈MyBatis循环Map(高级用法)

    浅谈MyBatis循环Map(高级用法)

    这篇文章主要介绍了浅谈MyBatis循环Map(高级用法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringBoot加载启动的源码解析

    SpringBoot加载启动的源码解析

    这篇文章主要介绍了SpringBoot加载启动的源码解析,@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解,本身其实也是一个IoC容器的配置类,需要的朋友可以参考下
    2023-12-12
  • 详解Java枚举类在生产环境中的使用方式

    详解Java枚举类在生产环境中的使用方式

    本文主要介绍了Java枚举类在生产环境中的使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • Springboot中使用Filter实现Header认证详解

    Springboot中使用Filter实现Header认证详解

    这篇文章主要介绍了Springboot中使用Filter实现Header认证详解,当在 web.xml 注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,它可以决定是否将请求继续传递给 Servlet 程序,以及对请求和响应消息是否进行修改,需要的朋友可以参考下
    2023-08-08

最新评论