System. setProperty( CachedIntrospectionResults . IGNORE_ BEANINFO_ PROPERTY
NAME,
ignore.toString());
}
spring.beaninfo.ignore 的配置用来决定是否跳过 BeanInfo 类的扫描,如果设置为 true,则跳过。
打印 Banner
=========
完成环境的基本处理之后,下面就是控制台 Banner 的打印了。SpringBoot 的 Banner 打印是一个比较酷炫的功能,但又显得有些华而不实,特别是打印图片时启动速度会变慢。这里,我们简单了解一下它的底层代码实现。
Banner 打印是通过 printBanner 方法完成的,相关代码如下。
private Banner printBanner(ConfigurableEnvironment environment) { Q
//如果处于关闭状态,则返回 null
if (this . bannerMode == Banner . Mode .0FF) {
return null;
//如果 resourceL oader 不存在则创建一个默认的 ResourceL oader
ResourceL oader resourcel oader
(this. resourceLoader != null)
? this .resourceLoader : new DefaultResourcel oader(getClassLoader());
//构建 SpringAppl icat ionBannerPrinter
SpringApplicationBannerPrinter bannerPrinter = new SpringApplicationBanne
rPrinter(
resourceLoader, this. banner);
//打印到日志中
if (this . bannerMode == Mode.L0G) {
return bannerPr inter . print(environment, this 。mainAppl icationClass, logg
er);
//打印到控制台
return bannerPrinter .print(environment, this .mainApplicationClass, Syste
m. out);
}
上面的代码中展示了 Banner 的开启及打印位置的设置。 程序通过 Banner.Mode 枚举值来判 断 是 否 开 启 Banner 打 印 , 此 项 参 数 可 以 在 SpringBoot 入 口 main 方 法 中 通 过setBannerMode 方 法 来 设 置 , 也可 以 通 过 application.properties 中 的spring.main.banner-mode 进行设置。
SpringApplicationBannerPrinter 类承载了 Banner 初始化及打印的核心功能,比如默认如何获取 Banner 信息、如何根据约定优于配置来默认获得 Banner 的内容、Banner 支持的文件格式等。
而 具 体 打 印 的 信 息 是 由 Banner 接 口 的 实 现 类 来 完 成 的 , 比 如 默 认 情 况 下 使 用
SpringBootBanner 来打印 Spring Boot 的版本信息及简单的图形。当然还有通过资源文件打印的 ResourceBanner,通过图片打印的 ImageBanner 等方法。
由于该功能华而不实,就不贴代码占用过多篇幅了,感兴趣的朋友可自行查阅源代码。
Spring应用上下文的创建
==============
在前面的章节中已经多次涉及 WebApplicationType 枚举类,无论是推断 Web 应用类型,还是创建不同的配置环境都与此枚举类有关。Sprina Boot 创建 Spring 的应用上下文时,如果未指定要创建的类,则会根据之前推断出的类型来进行默认上下文类的创建。
在 Spring Boot 中通过 SpringApplication 类中的 createApplicationContext 来进行应用上下文的创建,代码如下。
public static final String DEFAULT_ CONTEXT_ CLASS = "org. springframeworkgon
text."
- “annotation. Annotat ionConfigApplicationContext”;
public static final String DEFAULT_ SERVLET_ WEB_ CONTEXT CLASS = "org.
springf
r amework .
boot."
"web. servlet. context . AnnotationConfigServletWebServerApplicationContex
t"
public static final String DEFAULT REACTIVE_ WEB_ CONTEXT_ CLASS = "org.spring
framework .
+"boot .web.reactive. context .AnnotationConfigReactiveWebServerApplication
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。
因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!
由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频
如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
等项目供你选择,真正体系化!**
由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频
如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-1Cz18xUn-1712535781949)]