一、springboot简介
(一)springboot概述:
1.什么是springboot:
Spring Boot是由Pivotal团队提供的全新 框架 ,其设计目的是用来 简化 新 Spring 应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域 (rapid application development)成为领导者。
Spring Boot可以轻松创建可以运行的独立的,基于生产级Spring的应用程序,是spring框架的扩展和自动化,省去了在spring中需要进行的文件配置,使得开发变得更快、更高效、更自动化。
2.springboot特点:
约定优于配置
独立运行的 Spring 应用
内 Servlet 容器
提供 starter 简化 Maven 配置
自动配置 Spring
准生产的应用监控
3.重要策略:
SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。
SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;SpringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。
二、为什么要学习springboot
springboot和spring的比较:
Spring开发有一下特点:
-
依赖太多了,而且要注意版本兼容。一个应用,要添加10-20个依赖,Spring相关的包10多个,然后是Hibernate包,Spring与Hibernate整合包,日志包,json包一堆,而且要注意版本兼容性。
-
**配置太多了,**要配置注解驱动,要配置数据库连接池,要配置Hibernate,要配置事务管理器,要配置Spring MVC的资源映射,要在web.xml中配置启动Spring和Spring MVC等
-
部署和运行麻烦。要部署到tomcat里面。不能直接用java命令运行。
为了解决上述痛点,SpringBoot诞生了。SpringBoot框架有如下特点:
-
通过starter和依赖管理解决依赖问题。
-
通过自动配置,解决配置复杂问题。
-
通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。
因此在项目中,为了加快项目的开发效率,简化开发流程,公司中大部分新的项目是基于SpringBoot 来开发的。学习SpringBoot,主要是学习其自动配置的原理,以及相关场景启动器 与 默认的版本管理等
三、springboot快速体验
1.LomBok注解及对应功能:
@Data:自动生成 Getter/Setter 、toStringequals、hashCode 方法,以及不带参数的构造方法
@NonNull:帮助处理NullPointerException
@CleanUp:自动管理资源,不用再在 finally 中添加资源的 close 方法
@Getter/@Setter:自动生成 Getter/Setter 方法
@ToString:自动生成toString 方法
@EqualsAndHashcode:从对象的字段中重写equals 和hashCode 方法
@NoArgsConstructor/@RequiredArgsConstructo@AllArgsConstructor:自动生成无参/部分参数/全部参数的构造方法
@Value:用于注解 final类
@Builder:产生复杂的构建器API类
@SneakyThrows:用于处理异常
@Synchronized:同步方法的转化
@Log:支持使用各种日志(logger) 对象·只要在使用时,用对应的注解进行标注比如使用 Log4j作为日志库,则在需要加入日志的位置写上注解 @Log4j即可
2.Maven的安装及配置(Maven官网:Maven – Welcome to Apache Mavenhttps://maven.apache.org)
4.jdk的安装及配置:
通过官网下载:https://www.oracle.com/java/technologies/downloads/
百度网盘https://pan.baidu.com/s/1DT2GBEuj5HImZyzylxMpAg提取码: iw9c
3.IDEA的安装
开始使用idea:
安装好Maven及idea之后,进入Maven安装目录下的config目录,打开setting.xml文件,找到<mirror></mirror>标签,以设置阿里云镜像仓库为例,添加如下代码:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
springboot的po.xml文件配置:
什么是 pom?
POM 是 Project Object Model 的缩写,即项目对象模型。
pom.xml 就是 maven 的配置文件,用以描述项目的各种信息
配置代码如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>