(不要弄太多深层次的代码,那样反而不好理解,所以尽量简述)
SpringBoot的核心原理:自动配置
讲到自动配置必须提起自动注入,因为SpringBoot的自动配置是为自动注入服务的,而自动注入的使用者就是Spring。
再讲Spring自动注入前,我们理一下三层业务架构的流程:
Controller(业务层/客户访问层)---->Service(服务层)---->Dao(数据层)
Controller从Service拿方法,Service从Dao拿数据,是大部分企业项目的业务架构。
如果Controller层需要调用Service层的某个方法,传统方法必须是new一个指定的Service类对象。
这样的做的坏处:如果Service层非常之多,Controller层就会非常冗余。
因为不同的Controller类如果调用同一个Service类对象的方式,需要new多个同样的Service类对象。这样对效率,内存都不友好。
所以就引入了Spring IOC的概念。
把普通的Bean内置入Spring变成Spring Bean.
当我们需要使用的时候直接以注解的方式让Spring自动注入
@Autowried
UserService userservice;
区别于
UserService userservice=new UserserviceImpl();
这样的好处是不同的Controller类在调用相同的Service类对象的某个方法时,使用的都是同一个Service类对象。
把需要用到的类都自动让Spring去托管,减少了冗余。
介绍到这里,想想如果某个类没有被内置为Spring Bean,那么使用自动注入的方式就肯定会注入失败。
常常发生这个问题的就是来自外部的jar包里面的类,如果想要把jar包里面的类内置为Spring Bean,就需要繁琐的配置。
而Spring Boot核心作用就是通过自动配置解决这个问题的。
SpringBoot采用“约定优于配置的原则”,所以很多非自建的jar包里面的类就不需要动用配置文件逐个配置参数内置为Spring Bean。SpringBoot会通过自动配置将其方便的内置为Spring Bean,减少了大量模式化配置文件的编写。
通过SpringBoot的自动配置,当你要用一些类对象的时候就可以简便的让Spring给你自动注入。