本文共 2918 字,大约阅读时间需要 9 分钟。
从最初的单体架构,到现在的微服务架构,Spring Boot 都发挥着超大的作用,它简洁快速开发的魅力,值得推广到公司的任何项目中。目前,Spring Boot 拥有超棒的特性和它集成许多的优秀技术!
SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。SpringBoot 是简化 Spring 应用开发的一个框架。他整合了 Spring 的技术栈,提供各种标准化的默认配置。使得我们可以快速开发 Spring 项目,免掉 xml 配置的麻烦。降低 Spring 项目的成本。
这个挺多的,我们就几个重要的。
高优先级的会覆盖低优先级的。
命令行上的参数配置是优先级最高的。
jar 包外的带 profile 的配置文件。
jar 包内的带 profile 的配置文件。
jar 包外的不带 profile 的配置文件。
jar 包内的不带 profile 的配置文件。
通过建立自己的类继承 WebMvcConfigurerAdapter ,在类上面打上注解 @Configuration 。然后重写里面的方法即可。容器中的所有的 WebMvcConfigurer 会一起起作用。
如果我们不想使用 mvc 的自动配置,全部使用自己的。可以在配置类上增加注解 @EnableWebMvc 。这个注解可以导入一个 webmvcconfigurationsupport 的类。然后 mvc 的自动配置类上的注解有这么一句话,有一个条件注解,当没有上面那个类的时候,才生效。笔者整理了最新各路知识点合集包含有:JVM、MySQL、MyBatis、Dubbo、Liunx、TomCat等多种知识点,如果各位有需要的话欢迎加入我们的讨论群来一起交流学习领取资料 暗号:qf
Spring IoC 的实现机制
Spring 中的 IoC 的实现原理就是工厂模式加反射机制。
interface Fruit { public abstract void eat(); } class Apple implements Fruit { public void eat(){ System.out.println("Apple"); }} class Orange implements Fruit { public void eat(){ System.out.println("Orange"); }} class Factory { public static Fruit getInstance(String ClassName) { Fruit f=null; try { f=(Fruit)Class.forName(ClassName).newInstance(); } catch (Exception e) { e.printStackTrace(); } return f; }} class Client { public static void main(String[] a) { Fruit f=Factory.getInstance("io.github.dunwu.spring.Apple"); if(f!=null){ f.eat(); } }}
BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。
依赖关系
ApplicationContext接口作为BeanFactory的派生,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能:
-继承MessageSource,因此支持国际化。
加载方式
BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。
ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预载入所有的单实例Bean,通过预载入单实例bean ,确保当你需要的时候,你就不用等待,因为它们已经创建好了。
相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
创建方式
BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建,如使用ContextLoader。
注册方式
BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。
SpringBoot 整合 redis
引入 redis 的启动器。 data-redis 。引入后再配置文件进行配置 redis 的 host 。然后通过 redistemplate 就可以进行操作了。会乱码,默认使用的是 jdk 的序列化 json 器。需要改成 jackson 。自己实现一个 RedisTmeplate 。泛型为 object , object 。再实现 CacheManager 。就会发现缓存变成 json 形式了。
笔者在这里给各位整合最新的真实大厂面试题,有需要的小伙伴可以加群: 暗号:qf
来自行领取转载地址:http://ghefi.baihongyu.com/