Idea创建聚合项目

    xiaoxiao2023-11-11  143

     

    创建一个:客户端,服务端,实体类端的聚合项目

    结构图:

    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)

    表示不让客户端启动时自动连接数据库。

    最新回复(0)