欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年12月05日 09:14:07   作者:墨悲絲染  
這篇文章主要介紹了在IDEA中搭建最小可用SpringMVC項目(純Java配置),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 新建 SpringMVC 的 Web 項目

  • File - New - Project..
  • 勾選 SpringMVC 和 WebApplication ,點擊Next
  • 填寫 Project name : hello
  • 點擊 Finish
  • IDEA 會自動下載所需的 SpringMVC 的 jar 包

2. 代碼編寫

代碼參考 《Spring 實戰(zhàn)》(第四版),本文和書中代碼略有差異

刪除不需要的配置文件

  • 刪除 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服務(wù)

  • 點擊 IDEA 右上角 綠色的小錘子圖標(biāo)旁的 Add Configuration...
  • 在彈出頁面中,點擊加號
  • 選擇 Tomcat Server - Local
  • 填寫 Name : helloServer
  • 點擊 Deployment - 點擊 + ,選擇 Artifact
  • 點擊 Apply, OK

將Sping MVC 相關(guān)包放到 Web 工程 中的 lib 下

  • File - Project Structure...
  • 選擇 Artifacts
  • 在右側(cè)的 Available Elements 中 hello 下 有兩個 Spring 的jar上,右鍵 選擇 `Put into /WEB-INF/lib
  • 點擊 Apply - OK

啟動tomcat

這是啟動tomcat 會報錯

Error:(5, 8) java: 無法訪問javax.servlet.ServletException
  找不到j(luò)avax.servlet.ServletException的類文件

這時需要添加 javax.servlet-api

4. 測試

瀏覽器訪問 http://localhost:8080/home

顯示

hello world

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中HashMap和HashTable區(qū)別

    Java中HashMap和HashTable區(qū)別

    HashMap和Hashtable都是Java常見的基于哈希表實現(xiàn)的Map接口的實現(xiàn)類,本文主要介紹了Java中HashMap和HashTable區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Java基礎(chǔ)之動態(tài)代理Cglib詳解

    Java基礎(chǔ)之動態(tài)代理Cglib詳解

    這篇文章主要介紹了Java基礎(chǔ)之動態(tài)代理Cglib詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Jmeter如何基于命令行運行jmx腳本

    Jmeter如何基于命令行運行jmx腳本

    這篇文章主要介紹了Jmeter如何基于命令行運行jmx腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于springboot集成swagger3時spring-plugin-core報錯的問題

    關(guān)于springboot集成swagger3時spring-plugin-core報錯的問題

    這篇文章主要介紹了關(guān)于springboot集成swagger3時spring-plugin-core報錯的問題,本文給大家分享解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot的@ControllerAdvice處理全局異常詳解

    SpringBoot的@ControllerAdvice處理全局異常詳解

    這篇文章主要介紹了SpringBoot的@ControllerAdvice處理全局異常詳解,但有時卻往往會產(chǎn)生一些bug,這時候就破壞了返回數(shù)據(jù)的一致性,導(dǎo)致調(diào)用者無法解析,所以我們常常會定義一個全局的異常攔截器,需要的朋友可以參考下
    2024-01-01
  • Spring 使用注解方式進行事務(wù)管理配置方式

    Spring 使用注解方式進行事務(wù)管理配置方式

    本篇文章主要介紹了Spring 使用注解方式進行事務(wù)管理配置方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳述IntelliJ IDEA插件的安裝及使用方法(圖解)

    詳述IntelliJ IDEA插件的安裝及使用方法(圖解)

    本篇文章主要介紹了詳述 IntelliJ IDEA 插件的安裝及使用方法(圖解),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java中的Rocketmq事務(wù)消息詳解

    Java中的Rocketmq事務(wù)消息詳解

    這篇文章主要介紹了Java中的Rocketmq事務(wù)消息詳解,RocketMQ的事務(wù)消息支持在業(yè)務(wù)邏輯與發(fā)送消息之間提供事務(wù)保證,RocketMQ通過兩階段的方式提供事務(wù)消息的支持,需要的朋友可以參考下
    2023-08-08
  • Java Synchronized字節(jié)碼層分析體驗

    Java Synchronized字節(jié)碼層分析體驗

    這篇文章主要介紹了Java Synchronized字節(jié)碼層分析,synchronized關(guān)鍵字解決了多個線程之間的資源同步性,synchronized關(guān)鍵字保證了它修飾的方法或者代碼塊任意時刻只有一個線程在訪問
    2023-04-04
  • IDEA操作MongoDB及安全認(rèn)證方式

    IDEA操作MongoDB及安全認(rèn)證方式

    這篇文章主要介紹了IDEA操作MongoDB及安全認(rèn)證方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論