讲一下初始化angular13 + spring boot 2.7 的流程,以及遇到的问题。

Angular初始化

装置Node.js

查看你的电脑是否装置了node.js, 若没有能够去https://nodejs.org/zh-cn/装置。咱们将用其下的npm来装置一些软件.

转到终端并输出node -v, 能够看到你装置的node -v 版本。

装置Angular CLI

运行npm install -g @angular/cli能够以装置 Angular CLI,

或者执行 npm i @angular/cli@^13.0.0 以装置特定版本的CLI。

而后输出ng version 以查看它正确地装置到了电脑上。

创立Angular我的项目

首先在终端中进入你抉择的目录, 而后运行
ng new <application name>

来创立一个Anagular我的项目

创立好的目录如下图

在Angular 我的项目目录中关上一个终端会话,而后运行以在ng serve中构建和运行应用程序。应该在终端中看到此编译胜利音讯。

期间遇到的问题

1. 版本不对

其实在创立的时候用的是angluar12的版本,

然而在前面想增加某一个组件的时候,

报错The package that you are trying to add does not support schematics.


起初查看官网得悉起初发现这个组件须要的是的是angular13的版本,于是从新创立应用angular13版本。

这也揭示咱们要留神所应用的组件的适配版本。

2. Jasmine tests单元测试为空

这个也找了很久都没有解决。单元测试什么都不显示

然而我在控制台中打印以后组件的htmlElement元素,是能够看到失常打印的

能够看到正确打印了htmlElement元素,阐明渲染是胜利的。然而页面依然没有显示。


起初发现在 Angular 13 中,他们为测试引入了一个新的优化个性:

来自https://blog.angular.io/angul...

咱们对 TestBed 进行了一些重要的改良,当初能够更好地在每次测试后拆除测试模块和环境。当初,每次测试后都会清理 DOM,开发人员能够期待更快、更少内存密集、更少相互依赖和更优化的测试。

起因是每次测试的时候会清理DOM,导致页面没有显示。

解决办法:增加 teardown: { destroyAfterEach: false } ,如下第9行的内容。

1 beforeEach(async () => {2    await TestBed.configureTestingModule({3      declarations: [],4      imports: [5        IndexModule,6        HttpClientModule,7        RouterTestingModule8      ],9      teardown: { destroyAfterEach: false }   +10    })11    .compileComponents();12  });

就能够退出这个模式。

感想:
事实上我感觉应用fit的时候很有必要查看页面渲染的内容,然而angular13间接一刀切了。

如果加一个设置,全局关上/敞开 这个模式,这样全局单元测试的时候清理DOM,应用fit的时候就不清理。 两败俱伤多好。

Spring Boot 初始化

JDK 和 Maven

首先确保你的电脑装置了JDKMaven, 命令如下。

若没有装置,能够参考装置
https://www.kancloud.cn/yunzh...

初始化Sring boot 我的项目

返回https://start.spring.io
能够抉择须要的版本,这里抉择的是2.7.1, 以及java8版本。

而后点击红色局部,增加spring web 利用

最初点击Generate the project 生成我的项目将其下载的任意本人喜爱的文件夹,下载成后解压

这里我解压成名为api的文件夹,与angular我的项目放在同一个目录下。

进入终端 执行mvn spring-boot:run命令

之后能够看到运行我的项目胜利的后果

遇到的问题

在开始的时候原本是用的最新版本的spring boot ,抉择了3.0.0(M3)版本, 并依据我的项目要求应用的是java8


但之后运行的时候报错: invalid target release 17

接下来找了半天问题。
最初找到了pom.xml文件。发现它指的是java verison 的17,无奈解析。

然而一想:我方才初始化的不是用的是java8吗,怎么变17了。

之后参考以前的我的项目,发现用java8, 外面要填成1.8

于是我换成了1.8

再运行发现了新的谬误: class file has wrong version。

而后又改了几次,依然不行。而后就猜测是 spring boot 版本的问题,


我从新创立了个我的项目,抉择了2.7.1版本

之后再运行,没有报错,而且pom.xml也是我抉择的1.8。 解决问题。

可能java8 不适宜3.0.0版本的spring boot 。

总结:

这次初始化中遇到版本的问题比拟多,然而这也是很失常的问题。再加上以前的初始化的教训,这次解决问题的速度快了很多。总之游刃有余,多经验多解决。