springboot+mybaits多模块创建项目
这里是引用
一、idea创建springboot工程
springboot是对SpringMVC框架进行封装,并且内置了tomcat。主要减少配置文件。所以我先创建父级工程:
图片: 
这里我们选择 maven pom
这里直接选择最低的版本号,其他不用选择
给父级工程起个名称。点击finish完成
这是创建完的pom工程,并且配置上maven
接下来创建子模块,dao service entity层

dao service entity层 创建maven工程。这里不用选择 直接next
dao service entity层创建完后。我们创建web工程也就contriller层

web工程需要选择project ,创建有目录的结构
注意版本一致

整个子模块创建完的目录接口。

我们需要dao service entity层的resources删除。并且添加对应com.beta.dao, com.beta.service,com.beta.entity
dao service entity层的pom文件大体相同
dao service entity层打成jar包

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错 设置为true则不会报错-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>`
web层需要替换父级依赖,建议打包成war
父级的pom 加上web模块。
在web添加一个controller层,并且在static目录下方张图片(方便测试),static为放置静态资源地方
启动项目并访问静态资源
http://localhost:8080/img/2.jpg 访问成功
访问接口成功
http://localhost:8080/query?id=11

二、配置mybatis
父级pom添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok}</version>
<scope>provided</scope>
</dependency>
<!-- mybatis 依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
在web层添加entity service等依赖。同理在service 添加entity 和dao 。在dao添加entity 依赖
在每层创建java类,service层如下
在resources目录下创建mapper用于集中放置xml文件
修改application.properties
# 数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=1
spring.datasource.url=jdbc:mysql://localhost:3306/yhy?serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
server.port=${port:8080}
#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mapper/*.xml
修改controller层的接口
修改启动app
SpringBootApplication 只能扫描当前包(com.anxin.web) 所以这里需要往上扫描一级(com.anxin)
启动项目访问接口成功
lohttp://localhost:8080/getUser?id=10


三、上文件
父级pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>dao</module>
<module>entity</module>
<module>service</module>
<module>web</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.15</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.anxin</groupId>
<artifactId>myboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<com.anxin>0.0.1-SNAPSHOT</com.anxin>
<mybatis.spring.boot>1.1.1</mybatis.spring.boot>
<mysql.version>8.0.22</mysql.version>
<org.projectlombok>1.18.4</org.projectlombok>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok}</version>
<scope>provided</scope>
</dependency>
<!-- mybatis 依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错 设置为true则不会报错-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
dao层pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>myboot</artifactId>
<groupId>com.anxin</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>dao</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>entity</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错 设置为true则不会报错-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
entity 层pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>myboot</artifactId>
<groupId>com.anxin</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>entity</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错 设置为true则不会报错-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
service层pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>myboot</artifactId>
<groupId>com.anxin</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>service</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>entity</artifactId>
</dependency>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>dao</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 打包时候会默认寻找签名是public static void main(String[] args)的方法,没有所以报错 设置为true则不会报错-->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
web层pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>myboot</artifactId>
<groupId>com.anxin</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.anxin</groupId>
<artifactId>web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>web</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>entity</artifactId>
</dependency>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>dao</artifactId>
</dependency>
<dependency>
<groupId>com.anxin</groupId>
<version>${com.anxin}</version>
<artifactId>service</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
UserMapper
public interface UserMapper {
UserDTO selectUser(@Param("id") Long id);
}
UserServiceImpl
import com.anxin.dao.UserMapper;
import com.anxin.entiey.UserDTO;
import com.anxin.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public UserDTO queryUser(Long id) {
System.out.println("*****************");
UserDTO userDTO=userMapper.selectUser(id);
return userDTO;
}
}
UserService
public interface UserService {
public UserDTO queryUser(Long id);
}
UserController
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/getUser")
@ResponseBody
public UserDTO getUser(@RequestParam Long id){
return userService.queryUser(id);
}
@GetMapping("/query")
@ResponseBody
public String queryUser(@RequestParam Long id){
return "成功访问";
}
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.anxin.dao.UserMapper" >
<resultMap id="BaseResultMap" type="com.anxin.entiey.UserDTO" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="code" property="code" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
<result column="code_id" property="codeId" jdbcType="VARCHAR" />
<result column="amount" property="amount" jdbcType="DECIMAL" />
<result column="creat_time" property="creatTime" jdbcType="DATE" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, code, name, password, phone, code_id, amount, creat_time, update_time
</sql>
<select id="selectUser" resultType="com.anxin.entiey.UserDTO" parameterType="java.lang.Long" >
select * from user
where id = #{id,jdbcType=BIGINT}
</select>
</mapper>
application.properties
# 数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=1
spring.datasource.url=jdbc:mysql://localhost:3306/yhy?serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
server.port=${port:8080}
#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mapper/*.xml
WebApplication
package com.anxin.web;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//SpringBootApplication 只能扫描当前包(com.anxin.web) 所以这里需要往上扫描一级
@SpringBootApplication(scanBasePackages="com.anxin")
//扫描dao层
@MapperScan(basePackages = "com.anxin.dao")
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
后续会在此基础上 创建springcloud相关的工程
505

被折叠的 条评论
为什么被折叠?



