spring5学习
代码地址: https://github.com/behappy-spring-study/spring5_study_source 容器与 bean1) 容器接口 BeanFactory 接口,典型功能有: getBean ApplicationContext 接口,是 BeanFactory 的子接口。它扩展了 BeanFactory 接口的功能,如: 国际化 通配符方式获取一组 Resource 资源 整合 Environment 环境(能通过它获取各种来源的配置信息) 事件发布与监听,实现组件之间的解耦 可以看到,我们课上讲的,都是 BeanFactory 提供的基本功能,ApplicationContext 中的扩展功能都没有用到。 演示1 - BeanFactory 与 ApplicationContext 的区别代码参考com.itheima.a01 包 收获💡通过这个示例结合 debug 查看 ApplicationContext 对象的内部结构,学到: 到底什么是 BeanFactory 它是 ApplicationContext...
SpringBoot项目启动时初始化操作的6种方式
SpringBoot项目启动时初始化操作的6种方式1、监听容器刷新完成扩展点ApplicationListener<ContextRefreshedEvent>ApplicationContext事件机制是观察者设计模式实现的,通过ApplicationEvent和ApplicationListener这两个接口实现ApplicationContext的事件机制。 Spring中一些内置的事件如下: ContextRefreshedEvent:ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用 refresh() 方法来发生。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用。 ContextStartedEvent:当使用 ConfigurableApplicationContext (ApplicationContext子接口)接口中的...
Spring-native/GraalVM
初识spring native官方介绍 Spring Native提供了使用GraalVM 本机图像编译器将Spring应用程序编译为本机可执行文件的支持。与Java虚拟机相比,本机映像可以为许多类型的工作负载提供更便宜,更可持续的托管。这些包括微服务,功能工作负载,非常适合容器和Kubernetes使用本机映像具有关键优势,例如即时启动,即时峰值性能和减少的内存消耗。GraalVM本机项目希望随着时间的推移会改善一些缺点和折衷方案。构建本机映像是一个繁重的过程,比常规应用程序要慢。预热后,本机映像具有较少的运行时优化。最后,它比具有某些不同行为的JVM还不成熟。常规JVM和此本机映像平台之间的主要区别是: - 在构建时将未使用的零件删除。 - 反射,资源和动态代理需要配置。 - 类路径在构建时是固定的。 - 没有类延迟加载:可执行文件中附带的所有内容都将在启动时加载到内存中。 - 一些代码将在构建时运行。 -...
