Spring Boot 創(chuàng)建多模塊項(xiàng)目

本文使用IDEA作為開發(fā)工具辰企。

1牢贸、構(gòu)建骨架

新建一個(gè)普通的Spring Boot項(xiàng)目潜索,名稱為springboot-multi-module。
可以參考IDEA新建Spring Boot項(xiàng)目

image.png

2誊抛、新建一個(gè)web子模塊

右鍵項(xiàng)目>>New>>Module


image.png

然后在彈出的子界面中選擇的左側(cè)選擇Maven,然后Next


image.png

輸入子模塊的名稱随夸,然后Next


image.png

最后Finish


image.png

此時(shí)查看原來父類的pom.xml文件宾毒,發(fā)現(xiàn)packing變?yōu)榱藀om诈铛,并且增加了一個(gè)modules節(jié)點(diǎn)墨礁,里面有一個(gè)剛添加的web子模塊

    <!--新增了modules節(jié)點(diǎn)-->
    <modules>
        <module>web</module>
    </modules>
    <!--由原來的jar變?yōu)閜om-->
    <packaging>pom</packaging>
image.png

3饵溅、移動(dòng)和刪除原來父模塊的文件

在web模塊main>java和test>java 下新建原父模塊同名的包蜕企,這里是com.xiaozhao

image.png

然后開始移動(dòng)文件轻掩,把父工程的SpringbootMultiModuleApplication.java、SpringbootMultiModuleApplicationTests.java 罕扎、application.properties移動(dòng)對(duì)web子模塊下對(duì)應(yīng)的目錄中腔召。用鼠標(biāo)按住文件拖動(dòng)即可。

image.png

拖動(dòng)完畢后


image.png

然后刪除src文件夾,最后工程的目錄為


image.png

4客峭、新建service子模塊

然后按照建立web子模塊的方式再新建一個(gè)service的子模塊

image.png

然后在service子模塊中新建一個(gè)包 com.xiaozhao.service舔琅,然后在此包新建一個(gè)HelloService的類搏明,內(nèi)容如下:

/**
 * @author xiaozhao
 * @date 2018/10/26上午11:13
 */
@Service
public class HelloService {
    public String hello(String name) {
        return "Hello " + name;
    }
}

5星著、在web子模塊中引用service子模塊的服務(wù)

首先在web子模塊的pom.xml文件中增加對(duì)service模塊的依賴粗悯,此處注意artifactId的寫法样傍,為service模塊中pom.xml中的獨(dú)立的artifactId

image.png
    <dependencies>
        <dependency>
            <groupId>com.xiaozhao</groupId>
            <artifactId>service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

新建一個(gè)HelloController衫哥,內(nèi)容如下:

/**
 * @author xiaozhao
 * @date 2018/10/26上午11:14
 */
@RestController
@RequestMapping("/user")
public class HelloController {

    @Autowired
    private HelloService helloService;

    @GetMapping("/hello/{name}")
    public String sayHello(@PathVariable String name) {
        return helloService.hello(name);
    }
}

最后運(yùn)行項(xiàng)目撤逢,在地址欄輸入 http://localhost:8080/user/hello/Kobe

會(huì)看到如下的輸出

*Hello Kobe

關(guān)于打包

1、打jar包

經(jīng)過上述步驟之后初狰,可以直接在IDEA開發(fā)工具中直接運(yùn)行奢入,但是執(zhí)行maven的打包命令時(shí)媳叨,卻會(huì)打包失敗关顷,提示找不到mainClass议双,這個(gè)時(shí)候在web模塊的pom.xml文件下增加一個(gè)build節(jié)點(diǎn)聋伦,其中mainClass的值就是web子模塊下的SpringbootMultiModuleApplication

 <build>
        <finalName>${artifactId}-${version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.xiaozhao.SpringbootMultiModuleApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

然后刪除父類pom.xml文件中的build節(jié)點(diǎn)


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

此時(shí)再打包就可以成功了


image.png

但是這種情況下執(zhí)行 mvn spring-boot:run 依然會(huì)提示找不到主類。

2翻斟、打war包

也可以打包為war包访惜,放到獨(dú)立Tomcat下執(zhí)行。在上面打jar包的基礎(chǔ)上做如下的修改:

2.1 首先將web子模塊的pom.xml文件中新增一個(gè)packaging節(jié)點(diǎn)

 <!--增加節(jié)點(diǎn)-->
    <packaging>war</packaging>

2.2 在最外層pom.xml文件中排除內(nèi)嵌的Tomcat依賴


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--排除tomcat的依賴干擾-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

    </dependencies>

2.3 修改web子模塊下的 SpringbootMultiModuleApplication

繼承SpringBootServletInitializer窒篱,然后再覆蓋其中的configure方法

@SpringBootApplication
public class SpringbootMultiModuleApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootMultiModuleApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootMultiModuleApplication.class);
    }
}

最后打成war包即可

image.png

完整代碼鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市括荡,隨后出現(xiàn)的幾起案子畸冲,更是在濱河造成了極大的恐慌,老刑警劉巖岩喷,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纱意,死亡現(xiàn)場(chǎng)離奇詭異偷霉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)叙身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門信轿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來残吩,“玉大人泣侮,你說我怎么就攤上這事×バ#” “怎么了深胳?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵舞终,是天一觀的道長(zhǎng)翎苫。 經(jīng)常有香客問我煎谍,道長(zhǎng),這世上最難降的妖魔是什么满俗? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任唆垃,我火速辦了婚禮痘儡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渐尿。我一直安慰自己砖茸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著震桶,像睡著了一般再沧。 火紅的嫁衣襯著肌膚如雪尊残。 梳的紋絲不亂的頭發(fā)上炒瘸,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音寝衫,去河邊找鬼顷扩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛慰毅,可吹牛的內(nèi)容都是我干的隘截。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼汹胃,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼婶芭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起犀农,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宰掉,沒想到半個(gè)月后呵哨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轨奄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年孟害,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挪拟。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挨务,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谎柄,我是刑警寧澤果漾,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站谷誓,受9級(jí)特大地震影響绒障,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捍歪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一户辱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糙臼,春花似錦庐镐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至揽乱,卻和暖如春名眉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凰棉。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工损拢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撒犀。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓福压,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親或舞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子荆姆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容