springboot学习五:SpringBoot创建maven多模块项目,看这一篇文章即可

项目架构

SpringBoot创建maven多模块项目
在这里插入图片描述
该项目名称为springboot-maven-multi,由

  1. user-dao
  2. user-domain
  3. user-service
  4. user-web

4个模块组成.
其中springboot-maven-multi模块是其他模块的父模块。

一、新建父模块:springboot-maven-multi项目

File -> New -> Project -> Spring Initializr
在这里插入图片描述
如下图:输入Group、Artifact等信息,Type选择Maven Pom
在这里插入图片描述
添加依赖,初始化pom文件。
在这里插入图片描述
在这里插入图片描述
最后finish即可。
最后项目生成后结构只有一个pom.xml文件,无src目录,如下图
在这里插入图片描述

二、新建user-model、user-dao、user-service、user-controller模块

如:新建user-model模块

File -> New -Module -> Maven
在这里插入图片描述
在这里插入图片描述
在下图的Module name中输入 user-model
Next
在这里插入图片描述
点击Finish即可。
user-daouser-serviceuser-web模块新建步骤也相同,只需修改模块名称即可。

三、编写user-model模块代码

创建User实体类

package com.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
	private String id;
	private String name;
	private String password;
}


四、编写user-dao模块代码

创建UserDao类(此处只是演示创建多模块,所以没有连接数据库),user-dao模块依赖于user-domain模块,所以需在pom.xml文件中引入user-model依赖

import com.bean.User;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class UserDao {
    public List<User> query() {
        List<User> list = new ArrayList<>();
        User user = new User();
        user.setId(1L);
        user.setName("lnj");
        user.setPassword("123456");
        list.add(user);
        return list;
    }
}

先引入依赖,再引入类。
在User(这时爆红),按ALT+ENTER快捷键,上面有显示
在这里插入图片描述
点击第二个后,查看本模块的pom文件。
在这里插入图片描述
已经导入,再次按ALT+ENTER导入类
在这里插入图片描述

五、编写user-service模块代码

创建UserService类,user-service模块依赖于user-daouser-model模块,所以需在pom.xml文件中引入user-dao和user-model依赖

package com.service;

import com.bean.User;
import com.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    public List<User> query() {
        return userDao.query();
    }
}

六、编写user-controller模块代码

创建UserController类,user-controller模块依赖于user-serviceuser-model模块,所以需在pom.xml文件中引入user-service和user-model依赖

import com.bean.User;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/list")
    @ResponseBody
    public List<User> list() {
        return userService.query();
    }
}

七、创建UserApplication启动类

创建启动类时不可乱建,容易出错。
Springboot会默认将启动类同一级的包扫描进spring容器中,所以这里的启动类应和controller包在一个级别内。
当然也可以自动配置扫描包(不推荐),如下,加上如下几种配置方式。以下三种皆可。推荐使用默认扫描。

//@SpringBootApplication(scanBasePackages = {"com"})
//@ComponentScan(basePackages = {"com.service","com.dao","com.controller"})
//@ComponentScan(basePackages = {"com"})
package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


//@SpringBootApplication(scanBasePackages = {"com"})
@SpringBootApplication
//@ComponentScan(basePackages = {"com.service","com.dao","com.controller"})
//@ComponentScan(basePackages = {"com"})
public class UserApplication {

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

注意启动类目录,容易出错。

在这里插入图片描述

八、启动user-web项目

运行UserApplication类,启动成功
在这里插入图片描述

九、打包测试

在这里插入图片描述
打包成功。

在浏览器请求 localhost:8080/user/list,
在这里插入图片描述
出现数据,则请求成功。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java冯坚持

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

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

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

打赏作者

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

抵扣说明:

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

余额充值