Day02 | 构建框架

子模块创建

  • 后端管理
  • 将长链接转化为短链接,并进行访问量统计
  • 网关

在创建子模块前,首先要将其设置为<packaging>pom</packaging>,这段代码意味着shortlink-all的父模块不参与任何打包成jar包的行为。springboot会默认自动打包,但此模块仅用于规约,因此不需要打包。

三个子module创建

后端管理:创建new module,一般后管都叫做admin。若模块名和坐标不一致,则会同时显示二者。idea会自动把module加入到父模块的pom文件中。然后测试maven能否打包,选择clean、package用maven build。

短链接应用:命名为project,无用的代码可以删除。

网关:命名为gateway,刷新并打包。

后管相关

首先开发后管中的分组功能,分别创建包目录controller、service、dao(持久层),dao层又分为mapper(用来做关联,承接应用程序,以及mysql的驱动)和entity(实体),以及还有一些枚举、静态变量,统一放到admin的common目录下。common目录下包含enums(enum是枚举关键字,不能用作包名)和constant。由于admin要通过远程方式调用project,因此还有一层remote。remote中除了fin的接口外,还有一层dto。此dto专门用于remote。还需要一层dto,来接受controller产生的请求参数以及返回参数。以及util,用于封装。

打包后,在admin和project中的pom加入如下代码(gateway在最底层工作靠后的位置):

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

之所以不用指定版本号,是因为在父依赖中已经导入了所有的版本号(dependency management)。

在resource中创建application.yaml,在其中输入如下代码(与12306项目端口号避开):

server:
  port: 8001

admin端口号8002,project端口号8001,gateway端口号8000。

在admin中增加启动类ShortLinkAdminApplication:

@SpringBootApplication
public class ShortLinkAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(ShortLinkAdminApplication.class,args);
    }
}

出现版本问题,则需要对项目版本号、设置选项进行更改。浏览器访问localhost:8002,显示404,已经能够正常访问。

下一步就是在admin中创建应用,充实项目。框架已经搭建完成!

问题与解决

由于原先刷题用的版本为20,此项目为17,所以需要更改JDK版本。网上设置教程很多,但由于本项目的模组都是于maven安装,每次重新加载后都会回退至默认版本。解决方法是在项目pom.xml中添加如下代码:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>17</source>  <!--language level-->
                <target>17</target>  <!--java compiler version-->
            </configuration>
        </plugin>
    </plugins>
</build>

这样就可以避免了每次maven刷新后还需要手动更改设置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容