1、环境
jdk1.8.0_91+idea+maven3.6.3
2、创建父目录
创建maven项目,将src删除,父目录只需要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"> <modelVersion>4.0.0</modelVersion> <groupId>com.wdz.alibaba</groupId> <artifactId>wdz-alibaba</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>wdz-common</module> <module>wdz-user</module> <module>wdz-product</module> <module>wdz-order</module> </modules> <!--依赖父工程--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <type>pom</type> <version>${spring-cloud.version}</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
3、创建子项目
创建子项目:wdz-common
用于存放实体类和工具类,不需要启动类和配置文件
在java文件夹下创建项目包路径
wdz/common/model # 存放项目所需的实体类,当然也可以把单个项目对应的实体类存放在所需的项目下,实体类上添加注解
import lombok.Data; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; /** * 用户实体类 * spring-boot-data-jap中的注解,标明实体类与数据库的关系 * Data 是lombok中的注解,自动生成get、set、tostring等 */ @Data @Entity(name="wdz_user") public class User { /**标明主键,设置自增*/ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String userName; private String password; private String mobile; }
4、创建用户模块
创建子项目:wdz-user
创建包路径:wdz/user
配置文件:
server: port: 8071 spring: application: name: wdz-user datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/wdz_alibaba?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: root jpa: properties: hibernate: hbn2dd1: # 使用 InnoDB dialect: org.hibernate.dialect.MySQL5InnoDBDialect hibernate: # 如果数据库不存在,则创建 ddl-auto: update show-sql: true
创建启动类
package wdz.user; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; @SpringBootApplication @EntityScan("wdz.common.model") public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class); } }
# 控制器package wdz.user.controller; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { }
# 接口
package wdz.user.service; public interface IUserService { }
# 实现类
package wdz.user.service.impl; import org.springframework.stereotype.Service; import wdz.user.service.IUserService; @Service public class UserServiceImpl implements IUserService { }
# 持久层DAO
package wdz.user.dao; import org.springframework.data.jpa.repository.JpaRepository; import wdz.common.model.User; // 泛型中的User对应公共包中的实体类,Long 对应主键id public interface UserDao extends JpaRepository<User,Long> { }
5、启动项目
user项目,如果提示实体类加载不到,可以先将common项目maven install 一下,
先创建数据库,启动之后对应的表会自动创建,实体类中属性使用规范的驼峰会直接创建为:createTime ----》create_time
如果引入项目使用正常,启动项目报错:Not a managed type
则在启动类上添加注解:
@EntityScan("实体类包路径")
为了学习方便建议使用data-Jpa,如果正常公司开发项目,建议使用mybatis