Spring Boot 有哪些优点?
减少开发,测试时间和努力。
使用 JavaConfig 有助于避免使用 XML。
避免大量的 Maven 导入和各种版本冲突。
提供意见发展方法。
通过提供默认值快速开始开发。
没有单独的 Web 服务器需要,这意味着你不再需要启动 Tomcat,Glassfish 或其
他任何东西。
需要更少的配置 因为没有 web.xml 文件,只需添加用@ Configuration 注释的类,
然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。
您甚至可以将@Autowired 添加到 bean 方法中,以使 Spring 自动装入需要的依赖关系
中。
基于环境的配置 使用这些属性,您可以将您正在使用的环境传递到应用程序:
-Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring 将
在(application{environment} .properties)中加载后续的应用程序属性文件。
如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
这可以使用 DEV 工具来实现,通过这种依赖关系,您可以节省任何更改,嵌入式
tomcat 将重新启动。
Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力,Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。
开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器,这将消除每次手动部署更改的需要,Spring Boot 在发布它的第一个版本时没有这个功能。
这是开发人员最需要的功能,DevTools 模块完全满足开发人员的需求,该模块将在生产环境中被禁用,还提供 H2 数据库控制台以更好地测试应用程序。
org.springframework.boot
spring-boot-devtools
true
常见的系统架构风格有哪些?各有什么优缺点?
1、单体架构
单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦
合在一个应用中的架构方式。
单体架构特点:打包成一个独立的单元(导成一个唯一的 jar 包或者是 war 包),会一个进
程的方式来运行。
单体架构的优点、缺点
优点:
项目易于管理
部署简单
缺点:
测试成本高
可伸缩性差
可靠性差
迭代困难
跨语言程度差
团队协作难
MVC 架构:
MVC 架构特点:
MVC 是模型(Model)、视图(View)、控制器(Controller)3 个单词的缩写,下面我们从
这 3 个方面来讲解 MVC 中的三个要素。
Model 是指数据模型:
是对客观事物的抽象。如一篇博客文章,我们可能会以一个 Post
类来表示,那么,这个 Post 类就是数据对象。 同时,博客文章还有一些业务逻辑,如
发布、回收、评论等,这一般表现为类的方法,这也是 model 的内容和范畴。 对于
Model,主要是数据、业务逻辑和业务规则。相对而言,这是 MVC 中比较稳定的部分,
一般成品后不会改变。 开发初期的最重要任务,主要也是实现 Model 的部分。这一部
分写得好,后面就可以改得少,开发起来就快。
View 是指视图:
也就是呈现给用户的一个界面,是 model 的具体表现形式,也是收集
用户输入的地方。 如你在某个博客上看到的某一篇文章,就是某个 Post 类的表现形式。
View 的目的在于提供与用户交互的界面。换句话说,对于用户而言,只有 View 是可见
的、可操作的。事实上也是如此,你不会让用户看到 Model,更不会让他直接操作 Model,
你只会让用户看到你想让他看的内容。 这就是 View 要做的事,他往往是 MVC 中变化
频繁的部分,也是客户经常要求改来改去的地方,今天你可能会以一种形式来展示你的
博文,明天可能就变成别的表现形式了。
Contorller 指的是控制器:
主要负责与 model 和 view 打交道。 换句话说,model 和
view 之间一般不直接打交道,他们老死不相往来。view 中不会对 model 作任何操作,
model 不会输出任何用于表现的东西,如 HTML 代码等。这俩甩手不干了,那总得有人
来干吧,只能 Controller 上了。 Contorller 用于决定使用哪些 Model,对 Model 执行
什么操作,为视图准备哪些数据,是 MVC 中沟通的桥梁。
MVC 架构优缺点
优点:
各施其职,互不干涉。
在 MVC 模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需
要更改相应的层中的代码而不会影响到其它层中的代码。
有利于开发中的分工。
在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设
计人员可以进行开发视图层中的 JSP,对业务熟悉的开发人员可开发业务层,而其它开
发人员可开发控制层。
有利于组件的重用。
分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通
用的操作界面。
缺点:
增加了系统结构和实现的复杂性。
视图与控制器间的过于紧密的连接。
视图对模型数据的低效率访问。