Spring框架为开发Java应用程序提供了全面的基础架构支持,包含了如依赖注入和开箱即用的一些功能模块。
eg:Spring JDBC,Spring MVC,Spring AOP,Spring ORM
Spring Boot是Spring框架的扩展,消除了设置Spring应用程序所需要的XML配置,优点如下:
约定优于配置(具体体现在Spring Boot Starter)
1.创建了独立的Spring应用
2.内嵌Tomcat、jetty等服务器
3.尽可能自动配置Spring应用
4.提供了staters,poms来简化Maven配置
工作原理:
Spring Boot在启动时会去依赖的Starter包寻找resources/META-INF/Spring.factories文件,根据spring.factories配置加载Autoconfigure类,根据@Conditional注解的条件,进行自动配置,并将Bean注入Spring context
自动配置是如何实现的:
启动注解是@SpringBootApplication,它由@configuration,@EnableAutoConfiguration组成,@EnableAutoConfiguration是自动配置的入口。
ioc:控制反转,将多个Object对象分 开,在中间做管理,降低耦合性
AOP:面向切面编程,将应用程序中的商业逻辑对其提供支持的应用服务进行分离。
ORM:对象关系映射,采用XML描述对象-关系映射细节,只需要提供持久化类与表的映射关系
MVC:模型、视图,控制器。action控制层,dao数据库访问层,entity实体类,service业务逻辑处理层,untity数据库连接包(有时候被xml 取代)。
Mybatis可控,容易维护,减少对数据库的交互。