一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - 詳解如何全注解方式構建SpringMVC項目

詳解如何全注解方式構建SpringMVC項目

2021-06-06 14:08m2492565210 Java教程

這篇文章主要介紹了詳解如何全注解方式構建SpringMVC項目,利用Eclipse構建SpringMVC項目,非常具有實用價值,需要的朋友可以參考下

簡述

springboot對spring的的使用做了全面的封裝,使用springboot大大加快了開發進程,但是如果不了解spring的特性,使用springboot時會有不少問題

目前網上流傳使用idea比eclipse效率更加高,在搭建項目時,也嘗試使用idea,但是由于習慣問題,最終還是使用了eclipse,以后也別再折騰了,專注于開發本身更加重要

這是個簡單的springmvc項目,目的在于幫助理解spring4的springmvc的搭建,采用注解方式。項目簡單得不能再簡單,采用tomcat+spring+springmvc+h2方式搭建。項目啟動后,在訪問欄輸入訪問地址http://localhost:8080/testspringmvc/后直接訪問,利用訪問地址http://localhost:8080/testspringmvc/user/10001檢測功能是否正常運行,輸出結果是為一串json字串(java直接轉換)

文章分為3部分,項目搭建,代碼說明,以及在這過程中遇到的問題的小結

項目搭建

依次選擇file、new、spring legacy project

詳解如何全注解方式構建SpringMVC項目

在彈出的對話框中選擇spring mvc項目,填寫項目其他信息

詳解如何全注解方式構建SpringMVC項目

最后生成的springmvc項目的pom文件中要做些修改,因為這時生成的項目使用的是spring3,而這次的目的是練習使用spring4 (這里做個標志,以后有時間回來看看怎樣可以直接生成spring4的)

至此,項目已經生成,項目文件結構如下

詳解如何全注解方式構建SpringMVC項目

代碼說明

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class testmvcinitializer extends abstractannotationconfigdispatcherservletinitializer {
  @override
  protected class<?>[] getrootconfigclasses()
  {
    return new class<?>[] { rootconfig.class };
  }
 
  @override
  protected class<?>[] getservletconfigclasses() {
    return new class<?>[] { webconfig.class };
  }
 
  @override
  protected string[] getservletmappings() {
    return new string[] { "/" };
  }
}

spring4中通過繼承abstractannotationconfigdispatcherservletinitializer類,重寫其方法實現web項目的配置,其中getrootconfigclasses方法定義了的配置類將用于contextloaderlistener應用上下文的bean,getservletconfigclasses方法用于定義dispatcherservlet應用上下文中的bean,getservletmappings方法將dispatcherservlet映射到"/"

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@configuration
@enablewebmvc
@componentscan("com.m24.controller")
public class webconfig extends webmvcconfigureradapter {
  @bean
  public viewresolver viewresolver() {
    internalresourceviewresolver resolver = new internalresourceviewresolver();
    resolver.setprefix("/web-inf/views/");
    resolver.setsuffix(".jsp");
    return resolver;
  }
 
  @override
  public void configuredefaultservlethandling(defaultservlethandlerconfigurer configurer) {
    configurer.enable();
  }
 
  @override
  public void addresourcehandlers(resourcehandlerregistry registry) {
    super.addresourcehandlers(registry);
  }
}

此處注意的是使用@enablewebmvc,是springmvc配置類

最后是業務相關配置類

?
1
2
3
4
5
6
7
8
9
10
11
@configuration
@import(dataconfig.class)
@componentscan(basepackages = {"com.m24"},
  excludefilters = @filter(type=filtertype.custom, value=rootconfig.webpackage.class))
public class rootconfig {
  public static class webpackage extends regexpatterntypefilter {
    public webpackage() {
      super(pattern.compile("com.m24.controller"));
    }
  }
}

由于該配置類中使用了h2數據庫,所以還需要引入h2的配置類

?
1
@import(dataconfig.class)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@configuration
public class dataconfig {
  @bean
  public datasource datasource() {
    return new embeddeddatabasebuilder()
        .settype(embeddeddatabasetype.h2)
        .addscript("schema.sql")
        .build();
  }
 
  @bean
  public jdbcoperations jdbctemplate(datasource datasource) {
    return new jdbctemplate(datasource);
  }
}

問題小結

1、提供數據庫插入語句時,正確的是

insert into user values(10001, 'mvc', '123456', 'm', 'vc', '[email protected]');

在開始時使用雙引號,后臺出現未識別列的的錯誤,經查找

詳解如何全注解方式構建SpringMVC項目

2、使用@responsebody時,提示找不到合適的轉換器,要引入依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dependency>
     <groupid>com.fasterxml.jackson.core</groupid>
     <artifactid>jackson-core</artifactid>
     <version>2.5.0</version>
   </dependency>
   <dependency>
     <groupid>com.fasterxml.jackson.core</groupid>
     <artifactid>jackson-annotations</artifactid>
     <version>2.5.0</version>
   </dependency>
   <dependency>
     <groupid>com.fasterxml.jackson.core</groupid>
     <artifactid>jackson-databind</artifactid>
     <version>2.5.0</version>
   </dependency>

3、由于使用注解方式,沒有web.xml文件,項目報錯,缺失web.xml文件,pom文件中添加

?
1
2
3
4
5
6
7
8
<plugin>
        <groupid>org.apache.maven.plugins</groupid>
        <artifactid>maven-war-plugin</artifactid>
        <version>2.6</version>
        <configuration>
          <failonmissingwebxml>false</failonmissingwebxml>
        </configuration>
</plugin>

4、定義java版本

?
1
2
3
4
5
6
7
8
9
10
<!-- define the project compile level -->
      <plugin>
        <groupid>org.apache.maven.plugins</groupid>
        <artifactid>maven-compiler-plugin</artifactid>
        <version>2.3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

5、指定項目名

?
1
<finalname>testspringmvc</finalname>

代碼地址:https://github.com/m2492565210/testspringmvc

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/m2492565210/p/8328070.html

延伸 · 閱讀

精彩推薦
  • Java教程如何避免Java項目中的循環依賴問題

    如何避免Java項目中的循環依賴問題

    當我們開發一個Java項目時,我們要做的第一件事就是添加我們需要使用的依賴項,庫或框架。為此,我們使用依賴管理工具(例如Maven或Gradle),來管理我...

    編碼是個技術活6382021-03-02
  • Java教程springmvc實現json交互-requestBody和responseBody

    springmvc實現json交互-requestBody和responseBody

    本文主要介紹了springmvc實現json交互-requestBody和responseBody的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧...

    u0135177973922020-08-28
  • Java教程Java中Spring獲取bean方法小結

    Java中Spring獲取bean方法小結

    Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架,如何在程序中獲取Spring配置的bean呢?下面通過本文給大家介紹Java中Spring獲取bean方法小...

    mrr5082020-03-21
  • Java教程虛擬機linux中jdk安裝配置方法

    虛擬機linux中jdk安裝配置方法

    這篇文章主要為大家詳細介紹了虛擬機linux中jdk安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Cludy_Sky7902021-05-29
  • Java教程淺談Java中replace與replaceAll區別

    淺談Java中replace與replaceAll區別

    這篇文章主要介紹了Java中replace與replaceAll區別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨...

    童夢國度6092019-06-21
  • Java教程Java中的Runnable,Callable,Future,FutureTask的比較

    Java中的Runnable,Callable,Future,FutureTask的比較

    這篇文章主要介紹了Java中的Runnable,Callable,Future,FutureTask的比較的相關資料,需要的朋友可以參考下...

    Java之家1572020-08-15
  • Java教程10個經典的Java main方法面試題

    10個經典的Java main方法面試題

    這篇文章主要為大家分享了10個經典的Java main方法面試題,與其說是Java面試題,其實也是Java的一些最基礎知識問題,感興趣的小伙伴們可以參考一下 ...

    世勛SeHun3982020-03-23
  • Java教程JVM角度調試優化MyEclipse

    JVM角度調試優化MyEclipse

    這篇文章主要介紹了從JVM角度對MyEclipse進行調試優化,為大家分析調試優化MyEclipse的步驟,感興趣的小伙伴們可以參考一下 ...

    GameKing4272020-04-30
主站蜘蛛池模板: 欧美一级片在线免费观看 | 日本无遮挡拍拍拍凤凰 | 成人亚洲欧美综合 | 99这里只有精品视频 | 久久久影院亚洲精品 | 91精品天美精东蜜桃传媒免费 | 国产偷窥女洗浴在线观看亚洲 | 久久精品视频uu | 男女男在线精品网站免费观看 | 久青草国产观看在线视频 | 大胸孕妇孕交pregnantsex 大象视频污 | 亚洲国产精品福利片在线观看 | 免费观看在线aa | 黄动漫车车好快的车车a | 久草热8精品视频在线观看 久草草在线视视频 | 性free非洲老妇| 91久久精品国产一区二区 | 欧美大片一区二区 | 午夜影院0606 | 美女脱一光二净的视频 | 亚洲色图丝袜 | 亚洲国产精品久久久久 | 成年私人影院免费视频网站 | 成人特级毛片69免费观看 | 精品高潮呻吟99AV无码 | 国产一级网站 | 国产日韩欧美色视频色在线观看 | 日本国产高清色www视频在线 | 好猛好紧好硬使劲好大刺激视频 | 欧美成人中文字幕 | 久久精视频| 黑人巨摘花第一次出血 | 男人天堂影院 | 日韩欧美色图 | 美女露全身永久免费网站 | 亚洲精品久久久久69影院 | 亚洲 欧美 日韩 国产 视频 | 欧美成人第一页 | 狠狠燥 | 亚洲2023无矿砖码砖区 | 欧美精品一线二线大片 |