2020-11-02

聚合项目之前后端分离项目的演变

1.早期传统javaweb
前端渲染是在服务器中渲染,一旦用户数量过大,服务器压力就大了
2020-11-02

2.前后端单页面交互,MVVM开发模式:
为了适应多样性的发展,一套后端代码要和浏览器、手机端、pc端多接口使用,不用耦合在一起,功能上也新增加了如下功能:
H5页面:静态页面
正向代理:主动去请求资源,获取资源
反向代理Nginx:被请求资源
手机客户端的浏览器页面也是使用Restful进行请求,数据以Json格式传输
手机app:ios/android/小程序的客户端以同样的方式请求直接请求服务器
2020-11-02

3.前后端分离模式:
采用工程学的原理,将项目拆分与聚合,来进行开发设计
2020-11-02
其中最能体现工程学的,便是Maven聚合项目:
1.聚合工程里可以分为*工程(*工程、父工程)与子工程,这两者的关系其实就是父子继承的关系
2.子工程在maven里称之为模块(module),模块之间是平级,是可以相互依赖的。
3.子模块可以使用*工程里所有的资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)
4.一个*工程是可以由多个不同的子工程共同组合而成
2020-11-02
首先新增一个Maven项目作为父级/*项目,之后的所有Maven都在这个父级中新建,作为它的子级项目:
2020-11-02
2020-11-02
2020-11-02
通过以上图片我们知道,整个项目共有foodie-dev、api、common、mapper、pojo和service等五个模块,foodie-dev是*模块也是父级模块,所有模块都依赖这它:
每生成一个模块,foodie-dev的pom文件中都会主动生成一个相应模块,这代表每个模块都继承了foodie-dev
2020-11-02
而各个模块之间如果想相互调用,则需要添加依赖,如pojo想要调用common模块,就需要在pojo的pom文件中添加相应依赖,如此pojo模块就可以调用common模块了

2020-11-02
模块之间除了按顺序继承调用之外,也可以间接调用:
2020-11-02
api模块添加了service依赖,所以可以调用service模块,而service模块添加了mapper模块,所以api可以通过service路径调用mapper模块,以此类推,而api也还可以添加新的模块依赖,不影响添加的其他模块
但是,到了这里项目,还是不能运行的,因为Maven还没有将添加的依赖进行安装,即整合他们,如右上角,当我们在网上找一些jar包,将其坐标添加到pom中的时候,还需要点击右上角进行安装相关依赖才能使用,这里由于模块众多我们可以直接到maven中安装:
2020-11-02
双击install,进行安装,当出现success时,代表安装成功,这时候,才能真正使用这些依赖了
2020-11-02
聚合工程整合Springboot
首先引入Springboot的父级依赖:spring-boot-starter-parent,引入了它,证明该项目就是Springboot项目了
2020-11-02
2020-11-02
整合完成后,通过添加主启动类,就可以启动项目了
2020-11-02
这里需要了解下Springboot的自动装配原理:
@SpringbootApplication利用包含的@ComponentScan注解扫描包及子包下的所有类
@SpringBootConfiguration是一个接口,其主要配置是@Configuration,是一个IOC容器里面包含一个bean
@EnableAutoConfiguration开启自动装配,里面的@AutoConfigurationPackage,将容器导入
如此只需要在主启动类上添加@SpringbootApplication注解就可以完成装配,启动项目。

该项目在慕课网上有详细课程视频,有兴趣的可以去看看:
https://www.imooc.com/search/?words=imooc