SpringBoot父子工程搭建
1、父工程
1.1、创建父工程
1.2、移除无用文件
1.3、修改pom.xml
<?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><groupId>cn.darkiris</groupId><artifactId>haoyue</artifactId><version>0.0.1-SNAPSHOT</version><name>haoyue</name><description>haoyue</description><!--打包方式--><packaging>pom</packaging><!--版本信息--><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.7.6</spring-boot.version></properties><!--通用依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency></dependencies><!--依赖管理--><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement></project>
2、子工程(common)
2.1、创建子工程
2.2、修改pom.xml
<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>cn.darkiris</groupId><artifactId>haoyue</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>common</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>
2.3、Account.java
package cn.darkiris.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;import java.util.Date;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Account {public int id;public String name;public String password;public String phone;public String email;public String openid;public boolean sex;public Date birthday;public String introduce;public String address;public boolean status;public Date ctime;
}
2.4、Log.java
package cn.darkiris.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;import java.util.Date;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Log {public long id;public int account_id;public int type;public String context;public Date ctime;
}
3、子工程(account)
3.1、创建子工程
3.2、修改pom.xml
<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>cn.darkiris</groupId><artifactId>haoyue</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>account</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--添加依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>cn.darkiris</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><!--打包配置--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><executions><execution><goals><!--可以把依赖的包都打包到生成的Jar包中--><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
3.3、AccountApplication.java
package cn.darkiris;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class AccountApplication {public static void main(String[] args) {SpringApplication.run(AccountApplication.class, args);}
}
3.4、HelloController.java
package cn.darkiris.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;@RestController
public class HelloController {@RequestMapping("/hello")public String hello() {return "Hello AccountApplication!";}
}
3.5、application.yaml
server:port: 10001
4、整合mybatis(account)
4.1、目录结构
4.2、修改pom.xml
<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>cn.darkiris</groupId><artifactId>haoyue</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>account</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mysql.version>8.3.0</mysql.version></properties><!--添加依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>cn.darkiris</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><!--打包配置--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><executions><execution><goals><!--可以把依赖的包都打包到生成的Jar包中--><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
4.3、AccountMapper.java
package cn.darkiris.mapper;import cn.darkiris.bean.Account;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public interface AccountMapper {public List<Account> selectAccounts();
}
4.4、AccountMapper.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="cn.darkiris.mapper.AccountMapper"><select id="selectAccounts" resultType="cn.darkiris.bean.Account">select * from account</select>
</mapper>
4.5、AccountService.java
package cn.darkiris.service;import cn.darkiris.bean.Account;
import cn.darkiris.mapper.AccountMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class AccountService {@Autowiredpublic AccountMapper accountMapper;public List<Account> selectAccounts() {return accountMapper.selectAccounts();}
}
4.6、AccountController.java
package cn.darkiris.controller;import cn.darkiris.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class AccountController {@Autowiredpublic AccountService accountService;@RequestMapping("/accounts")public String accounts() {return accountService.selectAccounts().toString();}
}
4.7、application.yaml
server:port: 10001
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/darkiris?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: usernamepassword: password
mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: cn.darkiris.beanconfiguration:# 驼峰映射map-underscore-to-camel-case: true
4.8、AccountApplicationTests.java
package cn.darkiris;import cn.darkiris.bean.Account;
import cn.darkiris.mapper.AccountMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
public class AccountApplicationTests {@Autowiredpublic AccountMapper accountMapper;@Testpublic void selectAccounts(){List<Account> accountList = accountMapper.selectAccounts();System.out.println(accountList);}
}
4.9、AccountApplication.java
package cn.darkiris;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("cn.darkiris.mapper")
public class AccountApplication {public static void main(String[] args) {SpringApplication.run(AccountApplication.class, args);}
}
5、项目打包
mvn package -Dmaven.test.skip=true