创建一个:客户端,服务端,实体类端的聚合项目
结构图:
project-aggregate(父项目):
子module:project-common
子module:project-server
子module:project-client2
父项目:创建一个空骨架的SpringBoot项目
@修改pom.xml:
1.<packing>pom<packing> //打包方式从jar-->pom,父项目不执行代码,只是传递依赖
2.添加子module引用。
<modules> <module>project-server</module> <module>project-client2</module> <module>project-common</module> </modules>3.删除不必要的启动加载项(父项目不需要执行,所以必须要初始加载项)以及一些不必要的文件,例如:test文件夹,resources文件夹
common实体类子module:创建空骨架的SpringBoot项目
@修改pom.xml文件
1.添加父类依赖(具体信息参照父类的pom文件信息)
<parent> <groupId>com.example</groupId> <artifactId>project-aggregate</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../</relativePath> </parent><relativePath>写的是父项目的相对子module的路径。
2.添加注解依赖(如何实体类有@DateTimeFormat(pattern=”yyyy-MM-dd”)等注解)
<dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> </dependencies>3.删除不必要的启动加载项,以及不必要的文件,例如:test文件夹,resources文件夹。
(common子module是用来提供实体类依赖的,不需要执行代码)
server服务端子module:创建web,mybatis,mysql骨架的SpringBoot项目
@修改pom.xml文件
1.添加父类依赖(具体信息参照父类的pom文件信息)
<parent> <groupId>com.example</groupId> <artifactId>project-aggregate</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../</relativePath> </parent>2.添加实体类依赖(具体信息参照common子module的pom文件信息)
<!--实体类关联--> <dependency> <groupId>com.example</groupId> <artifactId>project-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
3.记得添加文件依赖(忘记添加了会导致配置信息无法加载等):
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.ftl</include> <include>**/*.css</include> <include>**/*.jpg</include> <include>**/*.js</include> </includes> <filtering>false</filtering> </resource> </resources>
@修改application.properties文件
server.port=8081 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/db01?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456 #连接数据库信息 mybatis.type-aliases-package=com.example.entity #实体类地址 #spring.cache.redis.time-to-live=60000 spring.redis.port=6379 spring.redis.host=localhost spring.cache.type=redis #redis地址(可以不选择noSQl数据库的redis骨架) spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.suffix=.ftl spring.freemarker.content-type=text/html #ftl页面引用信息 logging.level.com.example.mapper=debug #输入sql语句剩余的就跟一般的SpringBoot项目的服务端一样。
Client服务端子module:创建FreeMark骨架的SpringBoot项目(也可以添加web)
@修改pom.xml文件
1.添加父类依赖(具体信息参照父类的pom文件信息)
<parent> <groupId>com.example</groupId> <artifactId>project-aggregate</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../</relativePath> </parent>2.添加实体类依赖(具体信息参照common子module的pom文件信息)
<!--实体类关联--> <dependency> <groupId>com.example</groupId> <artifactId>project-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>3.记得添加文件依赖(忘记添加了会导致配置信息无法加载等):
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.ftl</include> <include>**/*.css</include> <include>**/*.jpg</include> <include>**/*.js</include> </includes> <filtering>false</filtering> </resource> </resources>4.如果有注解且报错,记得添加web的依赖包:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>@修改application.properties文件(客户端不需要添加sql连接信息)
server.port=8082 #端口 spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.suffix=.ftl spring.freemarker.content-type=text/html #ftl页面引用信息 url.service=http://localhost:8081 #服务端地址剩余的跟一般的SpringBoot的客户端一样
需要启动客户端和服务端时,就点击对应module的启动项。
可能遇到的错误:客户端datasource错误
解决:客户端的启动项注解修改:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
表示不让客户端启动时自动连接数据库。