Spring Boot简介
Spring Boot是在"约定优先配置"的思想下抽象出来的框架,用于快速,敏捷的开发新一代基于spring框架的应用程序。它集成了大量常用的第三方库配置(例如Jackson,JDBC,Redis),这些类库几乎可以零配置的开箱即用。
Spring Boot,Spring MVC和Spring有什么区别
Spring最重要的特性就是依赖注入和IOC控制反转,我们使用这两个特性可以开发出轻耦合的应用。
Spring MVC提供了一种分离式的方法来开发WEB应用,通过运用像DispatcherServlet,ModelAndView来使web应用的开发变得简单
Spring和Spring MVC的问题在于需要配置大量的参数,Spring Boot通过自动配置来解决这个问题,Spring Boot还通过了一系列的非功能性特征来更快的构建
自动配置原理
- 既然说到自动配置,那自动配置的原理是什么呢?在Spring程序的main方法中添@EnableAutoConfiguration注解会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器的bean。
什么是 Spring Boot Stater
starter是一套方便的依赖描述符,是可以获取所有spring及相关技术的一站式服务。
常见的starter:
- spring-boot-starter-web:嵌入tomcat和web开发需要的组件支持
- spring-boot-starter-data-jdbc:数据库支持
- spring-boot-starter-data-redis:redis支持
-
spring-boot-starter-logging:日志支持(自动使用logback作为日志框架)
如果想开发一个web程序,spring-boot-starter-web是首选,我们首先在dependependency中加入spring-boot-starter-web依赖
我们来举一个例子以更好的理解starter:
spring-boot-starter-web依赖
而实际上,我们的应用程序引入了很多开发应用程序锁必须的依赖:引入的依赖
例如spring-core,Jackson,Logging,很多经典的web程序都需要这些依赖项,spring-boot-starter-web已经预先帮我们打包好了这些依赖项。
如何使用 SpringBoot 自动重装我的应用程序?
使用SpringBoot开发工具,可以把下面的依赖添加至pom.xml文件中来实现项目的自动重装:什么是 Spring Date?
spring data的使命是在保证底层数据存储特殊性的前提下,为数据提供一个熟悉的,一致的,基于spring的编程模型。这使得使用数据访问技术,关系型数据库,非关系型数据库,变得很容易。
spring-boot-starter-data-jpa模块会默认配置JpaTransactionManager事务管理器,而spring-boot-starter-jdbc则会默认配置DataSourceTransactionManager事务管理器,所以我们不需要任何额外 配置就可以用@Transactional注解进行事务的使用。
那么两者的区别是什么呢?
- 这两个事务管理器都实现了spring中提供的PlatformTransactionManager接口
- 当使用JDBC作为数据访问技术的时候使用DataSourceTransactionManager;当使用JPA作为数据访问技术的时候使用JpaTransactionManager
RequestMapping 和 GetMapping 的不同之处在哪里?
- RequestMapping可以进行GET,POST,PUT请求,而GetMapping只有GET请求方法。
总结
SpringBoot核心功能
- 独立运行Spring项目:spring boot可以以jar包形式独立运行
- 内嵌web容器:内嵌了如tomcat,jetty等容器,无需以war包形式部署项目
- 提供starter简化配置
- 自动配置