国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用maven創建簡單的多模塊 Spring Web項目

DevYK / 744人閱讀

摘要:第一次寫技術文章,主要內容是使用創建一個簡單的項目,如有操作或理解錯誤請務必指出,當謙虛學習。基本思想其實就是一個項目引用別的模塊包,最終項目被打成包發布。

第一次寫技術文章,主要內容是使用maven創建一個簡單的SpringMVC WEB 項目,如有操作或理解錯誤請務必指出,當謙虛學習。
做這一次的工作主要是因為想加強一下自己對Spring Web 項目的理解,因為平時都是直接寫業務代碼,我覺得還是有必要自己了解一下創建項目的過程。后續會基于這個項目寫更多的SpringWeb開發過程,希望能幫助到有需要的人。

總的來說是一個相當精簡的多模塊springWeb項目搭建過程,讓我們進入正題吧

我們知道單體應用,就寫在一個project里面的話,業務一旦龐大起來非常難以管理。
把各個模塊多帶帶抽出來可以方便的對jar包進行版本管理(盡管我還沒經歷過這個),維護項目,團隊開發也會方便許多。
基本思想其實就是一個java web項目引用別的模塊Jar包,最終web項目被打成war包發布。
**而所有的war包項目,jar包項目都是在同一個父模塊下管理的(它們都是Maven項目)**
(如果你有IDE,裝好插件就用IDE創建吧,我個人不喜歡手動命令行創建)

1. 創建父項目

下圖中:框起來打勾這個會讓你跳過項目模式選擇,勾選對于創建項目沒有什么影響,以后也許會轉一下Maven這方面的文章

POM包才能做父項目,謹記!?。。?!

2. 子項目結構和創建
以下是我的結構分層,你也可以按你的想法來,最終目的是要方便自己開發。
test_parent    (父項目)
    |----test_web    (web項目)
    |----test_service    (業務內容)
    |----test_framework    (工具,框架封裝、配置)
    |----test_dao    (數據持久層,DO也放這)
    |----test_controller    (處理映射)
    

創建子項目直接右鍵父項目然后新建maven module ,也就是子模塊

我們先創建web模塊,這里你可以勾選第一條然后創建簡單項目,
如果沒有勾選,那么你要在下一步里選擇 maven-achetype-webapp,這里以簡單項目為例子

Group Id 和 version 都是繼承父項目的
一定要選擇war包打包,不然要重新把他構建成web項目
如果你沒選war包:https://www.cnblogs.com/leonk...
最后點finish完成

點擊生成Web描述文件 (web.xml)

這樣就完成了Web模塊的創建,剩下的其他項目都是同樣的步驟創建,都是選擇jar包,參考下圖:

3. 配置各模塊的pom.xml
pom.xml記錄所需的jar包,模塊聯系,包信息,打包參數等等信息,在多模塊里我們要理清關系,不要重復引用
首先毫無疑問的是讓parent加載spring的jar包是最方便開發的,因為默認所有模塊都繼承parent,所以子模塊引用spring內容也方便。
其次配置文件我們統一放在framework中進行管理。
那么先來寫入web.xml配置吧


    test_web
    
    
        
        contextConfigLocation
        classpath*:spring-*.xml
    

    
        org.springframework.web.context.ContextLoaderListener
    

    
        spring
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath*:spring-mvc.xml
        
        1
    
    
        spring
        /
    

    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    

這里可以看到我們寫了classpath*,原因是它能搜索到項目目錄以外的Jar包下文件
相關:http://www.cnblogs.com/wlgqo/...
web.xml詳解:https://blog.csdn.net/qq_3557...

web.xml是對WEB項目來說是必須的配置文件,寫好了spring配置文件的位置以后,就來新建2個spring配置文件,新建的配置放在test_framework模塊里,路徑如下圖
spring-context.xml spring-mvc.xml

一個是spring-context.xml 也叫applicationContext.xml,是webApp的上下文配置,也可以理解為配置dao、service 通用bean的地方,但我們這里使用的是注解掃描方式配置bean,所以就簡單許多,即便有工具存在,寫改xml真的很討厭?。?/p>




    
    
    
    
    
        
        
    
    

這里要去掉對controller的掃描,applicationContext初始化的上下文加載的Bean是對于整個應用程序共享的,不管是使用什么表現層技術,一般如DAO層、Service層Bean;
DispatcherServlet (下一個要配置的東西) 初始化的上下文加載的Bean是只對Spring Web MVC有效的Bean,如Controller、HandlerMapping、HandlerAdapter等等,該初始化上下文應該只加載Web相關組件。

context:component-scan 的 base-package 值用來決定我們需要掃描的包的基礎名,
具體配置相關可以看:https://www.cnblogs.com/exe19...

而context:annotation-config/ 呢?其實也是spring為了方便我們開發者給我們提供的一個自動識別注解的配置,相關細節如下:
解釋說明:https://www.cnblogs.com/_popc...
兩條配置的區別和詮釋:https://www.cnblogs.com/leiOO...

下面是第二個配置文件 spring-mvc.xml




    
    
        
    

    
    
        
            
                
            
            
        
    

包掃描沒什么好說的,這里還強調include了注解controller。
mvc:annotation-driven 是spring默認的注解驅動,這個配置項一口氣把一堆東西都給我們加進來了,但主要還是針對controller和處理請求的,具體的在下面文章中,因為加的內容有點多,所以這個留到后面研究,稍微理解作用就好:
相關文章 : https://blog.csdn.net/vicroad...

mvc:message-converters 顧名思義,就是用于處理請求消息的,request content-header 會記錄請求的內容類型,根據這些類型,spring會把內容轉化成服務器操作的對象,這里的字符串轉化是為了避免亂碼,我們指定了編碼格式。
相關文章:https://www.jianshu.com/p/2f6...

以上,我們就已經把最簡約的配置寫好了。接下來我們隨便寫一個controller試試

4.寫個Controller吧
根據之前寫好的controller的掃描包名,去我們test_controller模塊里創建一個controller

package com.test.hello.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class HelloController
{
    @RequestMapping("/get")
    public String helloGet(@RequestParam String str) throws Exception
    {
        return str;
    }
}

很簡單的一段返回請求字符串的代碼,現在一切就緒可以啟動服務器了,配置好Tomcat就可以啟動了,右鍵test_web --> run as --> run on server 選擇創建好的tomcat容器,就可以啟動了。
接下來,訪問: localhost:8080/test/test/get?str=helloWorld

如果你使用eclipse啟動且沒有正常啟動,特別是出現嚴重錯誤時,請先檢查web.xml配置命名有沒有問題,然后再檢查test_web項目的assembly,這個會影響項目的發布文件,下圖所示,右鍵項目點properties,沒有test_framework的話就加入framework項目。
網站無響應,檢查一下tomcat的端口,默認是8080。404檢查代碼的映射路徑。

5.結束語
第一次寫技術文章,記錄一下自己的學習過程,日后會以當前項目作為基礎,繼續記錄下自己遇到的問題和分享的知識,希望能幫助到一部分新手,此外,本篇文章中若有錯誤,歡迎指出,我會不斷更新文章誤點,不吝賜教。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74078.html

相關文章

  • SpringBoot多模塊項目實踐(Multi-Module)

    摘要:接下來,本文將重點闡述在環境的多模塊構建過程。本項目傳送門一創建聚合父工程首先使用來快速創建好一個工程。然后在里面聲明該父工程包含的子模塊。 序言:比起傳統復雜的單體工程,使用Maven的多模塊配置,可以幫助項目劃分模塊,鼓勵重用,防止POM變得過于龐大,方便某個模塊的構建,而不用每次都構建整個項目,并且使得針對某個模塊的特殊控制更為方便。接下來,本文將重點闡述SpringBoot在M...

    renweihub 評論0 收藏0
  • IDEA多module項目maven依賴的一些說明

    摘要:如果子模塊不聲明依賴的使用,即使該依賴在父中的中聲明了,也不會產生任何效果。 不管eclipse有沒有被被時代拋棄,反正是被我拋棄了,因為IDEA是真的好用 現在公司的項目基本都是基于maven的多module項目,controller,service,model,dao等都被分成了不同的module,這樣做當然也是為了解耦。 這些module可根據需要在pom.xml配置來打成war...

    pkwenda 評論0 收藏0
  • Spring Boot 2.x基礎教程:快速入門

    摘要:編寫一個接口創建命名為根據實際情況修改創建類,內容如下啟動主程序,使用等工具發起請求,可以看到頁面返回編寫單元測試用例打開的下的測試入口類。 簡介 在您第1次接觸和學習Spring框架的時候,是否因為其繁雜的配置而退卻了?在你第n次使用Spring框架的時候,是否覺得一堆反復黏貼的配置有一些厭煩?那么您就不妨來試試使用Spring Boot來讓你更易上手,更簡單快捷地構建Spring應...

    tigerZH 評論0 收藏0
  • Maven模塊項目搭建+整合SSM框架

    摘要:繼承作用就是避免配置重復,對于子項目來說應該關心父項目是怎么樣配置的。聚合字面理解就是聚在一起合作完成工作,就是將子模塊聚集起來完成相應的項目需求父工程的搭建項目結構在父工程中,主要負責完成依賴的版本管理,并不是實際的依賴。 從大二開始就一直關注segmentFault,在問題專區幫忙回答一些自己知曉的問題;在寫這篇文章之前我一直會在朋友圈發一些自己遇到的問題以及解決辦法,這是第一次寫...

    liaosilzu2007 評論0 收藏0
  • 擼一個Java腳手架,一統團隊項目結構風格

    摘要:這個文件會出現在創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。 雖然maven已經提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構建項目架構,但是默認提供的...

    邱勇 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<