Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。
控、运行状况检查和外部化配置等。
了以下 3 个注解:
如: java 如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
器,Spring Boot 将使用 Logback 作为默认日志框架,但是不管是那种日志框架他都支持将配置
文件输出到控制台或者文件中。
spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean,并且进行自动配置把
bean注入SpringContext中 //(SpringContext是Spring的配置文件)
Service方法上添加注解Transactional便可。
调用。 注意:需要在启动类加入@EnableAsync使异步调用@Async注解生效。
都只提供了一个 run 方法
解来绑定变量
纯Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:
5.0 对泛型的支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字
符串的查找。
class=“org.codehaus.jackson.map.ObjectMapper” />
类启动时就会为SpringBoot开启一个@EnableAutoConfiguration注解自动配置功能。
1.properties文件;
2.YAML文件;
3.系统环境变量;
4.命令行参数;
等等……
在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分
层配置数据。
置。那么 YAML 配置和传统的 properties 配置相比到底有哪些优势呢?
自定义的 YAML 配置。
过 @ImportResource 注解可以引入一个 XML 配置。
的自动化配置。
接、redis的配置等等。那我们如何在不同环境中自动实现配置的切换呢?Spring给我们提供了
profiles机制给我们提供的就是来回切换配置文件的功能
在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。
假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有其他文档。这可以使用配置文
件来完成。Spring Boot 使得使用配置文件非常简单。
读取properties中的配置,使用@MapperScan注册到对应的mapper包中
DataSourceConfig中配置的事务
安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter 并覆盖其方
法。
Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就
可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security 。当然这只是
一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。Shiro 和 Spring Security
相比,主要有如下一些特点:
求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Crossorigin resource sharing) 来解决跨域问题。这种解决方案并非 Spring Boot 特有的,在传统的
SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,
现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .maxAge(3600); } }
产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一
些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接
作为 HTTP URL 访问的REST 端点来检查状态。
ControlerAdvice 类,来处理控制器类抛出的所有异常。
(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但是,使用监视器
的一个主要缺点或困难是,我们必须单独打开应用程序的知识点以了解其状态或健康状况。想象一
下涉及 50 个应用程序的微服务,管理员将不得不击中所有 50 个应用程序的执行终端。为了帮助
我们处理这种情况,我们将使用位于的开源项目。 它建立在 Spring Boot Actuator 之上,它提供
了一个 Web UI,使我们能够可视化多个应用程序的度量。
围
动。Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开
发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新
加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring
Boot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满
足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用
程序。
org.springframework.boot spring-boot-devtools
器上,各自的 session 被从物理空间上隔离开了,但是经常,我们需要在不同微服务之间共享
session ,常见的方案就是 Spring Session + Redis 来实现 session 共享。将所有微服务的
session 统一保存在 Redis 上,当各个微服务对 session 有相关的读写操作时,都去操作 Redis 上
的 session 。这样就实现了 session 共享,Spring Session 基于 Spring 中的代理过滤器实现,使
得 session 的同步操作对开发人员而言是透明的,非常简便。
自定义的starter(如果自己开发过就可以说出来)
供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来
决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配
置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性(spring.factories)注入
将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们
只需要引入依赖就可以直接使用了。当然,开发者也可以自定义 Starter
注解,另一-个则是使用第三方框架 Quartz。
赖,所以我们在写依赖时才不需要写版本号。
环境的配置文件,例如 application-dev.properties 和 application-dev.yml。
总结就是打包用的
包
令来运行,这种 jar 不可以作为普通的 jar 被其他项目依赖,即使依赖了也无法使用其中的类。
后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOTINF\classes 目录下才是我们的代码,因此无法被直接引用。如果非要引用,可以在 pom.xml文件中增加配置,将 Spring Boot 项目打包成两个 jar ,一个可执行,一个可引用。
史上最全Java面试宝典,BAT大厂面试必备。整理不易,建议先关注点赞加收藏
序号 | 名称 | 地址 |
---|---|---|
1 | Java基础面试题(91道含答案) | (点击查看) |
2 | Java并发编程面试题 (123道含答案) | (点击查看) |
3 | Java异常面试题 (33道含答案) | (点击查看) |
4 | Java虚拟机(JVM)面试题(51道含答案) | (点击查看) |
5 | Java集合面试题(52道含答案) | (点击查看) |
6 | Linux面试题(50道含答案) | (点击查看) |
7 | Memcache面试题(23道含答案) | (点击查看) |
8 | Mybatiss面试题 (37道含答案) | (点击查看) |
9 | MySQL面试题(40道含答案) | (点击查看) |
10 | Netty面试题(49道含答案) | (点击查看) |
11 | Nginx面试题(23道含答案) | (点击查看) |
12 | RabbitMQ面试题(22道含答案) | (点击查看) |
13 | Redis面试题(70道含答案) | (点击查看) |
14 | SpringBoot面试题(44道含答案) | (点击查看) |
15 | SpringCloud面试题(49道含答案) | (点击查看) |
16 | SpringMVC面试题(29道含答案) | (点击查看) |
17 | Spring面试题(75道含答案) | (点击查看) |
18 | TCP、UDP、Socket、Http网络编程面试题(47道含答案) | (点击查看) |
19 | Tomcat面试题(15道含答案) | (点击查看) |
20 | Zookeeper面试题(28道含答案) | (点击查看) |
21 | 多线程面试题(60道含答案) | (点击查看) |
22 | 设计模式面试题(14道含答案) | (点击查看) |
23 | BIO、NIO、AIO、Netty面试题(35道含答案) | (点击查看) |
24 | Dubbo面试题(47道含答案) | (点击查看) |
25 | ElasticSearch面试题(31道含答案) | (点击查看) |
26 | Git常用命令(63条) | (点击查看) |