spring Boot的开发实现
spring Framework基于spring的javaee框架。
sping Boot则是基于spring Framework5.0以上之上快速构建spring的应用。
支持java8
有关新特性
Web Flux
关于Web Flux:
支持函数编程:java 8 Lambda(匿名函数)
响应式编程:reactive Streams
异步式编程:典型的银行系统为了安全,一般是采用同步事编程的,即等待回传确认,才进行下一步。在其他的场景,异步式可以加快响应时间
lambda表达式
return RouterFunctions.route(RequestPredicates.GET("/person/find/all"),request->{
/**
*返回所有用户对象
*Mono<ServerResponse> response = null;
*/
Collection<User> users = userRepository.findAll();
Flux<User> userFlux = Flux.fromIterable(users);
return ServerResponse.ok().body(userFlux,User.class);
});
上面涉及到了函数式与命令式编程的区别。
函数式编程:不管咋说函数式编程是在java8后面的新增特性,更加注重实体与实体之间的关系,以及数据间的映射,能够处理冗余和优化。
命令式编程:顾名思义,按照命令序列,照本宣科的执行。
说多了就跑偏了,具体的可以看这篇文章 函数式编程和命令式编程
项目构建
1:sping官网快速构建:start.spring.io
2:maven命令行:
dos窗口下:
mvn archetype:generate -DinteractiveMode=false -DgroupId=com.csdn -DartifactId=csdnByMaven Dversion=1.0.0-SNAPSHOT
maven创建后还需要去官网贴pom文件,比较繁琐,但有助有理解构成。
多模块搭建
-
通过在建立子父工程,完成对项目模块分解化,意义是重大的。
-
1:有利于团队的分工合作。
2: 模型的解耦,减少不同模块之间的耦合度。
不赘述见下草纸:
插播一下三层架构与持久层,mvc与三层架构的“暧昧”关系。
下面说下模块化的构建过程:
如下图所示新建模块(Idea中)
在pom文件中完成对不同模块之间的依赖关系的引用
如:
最后,模块化之间的联系,可以体现在主工程的pom文件中。
项目打包
1:打成jar包
mvn -Dmaven.test.skip -U clean install
需要注意,主类的位置和主工程的位置。
打包成功后一般在build包,或者target包里面。
java -jar web-0.0.1.jar
2:打成war包
可放在tomcat里面运行。
在pom文件里面标志,打war包
注意:在main里面要有webapp、WEB-INF、web.xml完整目录。
![]()
然后dos打包
mvn -Dmaven.test..skip -U clean package
而后同jar包一样,可通过同样的dos命令进行执行。
以上通过调试,即可完成项目的构建到打包运行。