讲一下初始化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
首先确保你的电脑装置了JDK
和Maven
, 命令如下。
若没有装置,能够参考装置
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 。
总结:
这次初始化中遇到版本的问题比拟多,然而这也是很失常的问题。再加上以前的初始化的教训,这次解决问题的速度快了很多。总之游刃有余,多经验多解决。