spring boot创建多模块项目

1:先创建一个聚合工程parent

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yonmei</groupId>
  <artifactId>taobao-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  
  <!-- 继承说明:这里继承SpringBoot提供的父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
        <relativePath/>
    </parent>
  
  <modules>
  	<module>taobao-interface</module>
  	<module>taobao-service</module>
  	<module>taobao-entity</module>
  	<module>taobao-web</module>
  </modules>
  
    <!-- 版本说明:这里统一管理依赖的版本号 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-web</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-service</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-interface</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-entity</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.42</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

2:创建公共项目common

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.yonmei</groupId>
    <artifactId>taobao-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <groupId>com.yonmei</groupId>
  <artifactId>taobao-common</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

3:创建parent的子模块(mapper,service,interface都是一样的,其中web的有点特殊!) 

    这里就演示service模块的创建

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.yonmei</groupId>
    <artifactId>taobao-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>taobao-service</artifactId>
  
    <dependencies>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-interface</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-entity</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
  
</project>


package com.gwm.service;

import org.springframework.stereotype.Service;

import com.gwm.api.UsersService;
import com.gwm.entity.Users;

@Service
public class UsersServiceImpl implements UsersService {

	@Override
	public String getUsersInfo(Users users) {
		System.out.println("springboot de ipml"+users);
		return "hellow springboot";
	}
}

4:创建web模块

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.yonmei</groupId>
    <artifactId>taobao-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>taobao-web</artifactId>
       <dependencies>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-interface</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-service</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.yonmei</groupId>
                <artifactId>taobao-entity</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        </dependencies>
</project>


4.1:  UsersController类的代码如下所示!

package com.gwm.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.gwm.api.UsersService;
import com.gwm.entity.Users;

@RestController
@RequestMapping("users")
public class UsersController {
	
	@Autowired
	private UsersService usersService;
	
	@RequestMapping("/getUserInfo")
	public String getString(){
		System.out.println("userInfo:="+usersService.getUsersInfo(new Users("gwm","123456")));
		return usersService.getUsersInfo(new Users("gwm","123456"));
	}
}

4.2:启动类的代码如下所示

package com.gwm.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*
 * 1:可以加载一个扫描配置文件
 * */
import org.springframework.context.annotation.ComponentScan;

@ComponentScan(basePackages={"com.gwm"}) 
@SpringBootApplication
public class StarterApplication {
	public static void main(String[] args) {
		SpringApplication.run(StarterApplication.class, args);
	}
}

4.3:上述启动类中需要注意到的是,这里有可能会报一个错误,错误的原因是因spring boot自动扫描没有找到bean,所以我们可以自己加一个注解配置,自己指定需要扫描的文件或者类,这个配置就是:@ComponentScan(basePackages={"com.gwm"})



5:需要打包web的时候就需要在含有启动类(也就是controller类)的模块中添加一个插件(一段代码),其中打包的命令是

package,如果是打包war,就要将web层的pom的打包方式改为war,直接放到tomcat中去即可,如果是jar,那么需要找到该jar的目录,然后运行java -jar xx.xx.xx.jar即可!

        
        <build>
        	<finalName>first-spintboot-project</finalName>
        <plugins>
            <plugin>
                <!--该插件主要用途:构建可执行的JAR -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
        

另外一个博主讲的是IDEA创建springboot项目的流程点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔道不误砍柴功

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值