1.springboot简介
1.1 Spring Boot 概述
当初软件市场曾经造成肯定的规模,零碎架构的复杂度也越来越高(例如有单体架构,分布式架构,微服务架构)。软件的整个架构体系正在产生很大变动,在这种变动中,企业当初更重视技术的开箱即用,更重视技术在生态圈中的深度交融,更重视轻量级的运维。由此spring boot诞生。
阐明:学技术肯定要理解技术发展史,并对技术的倒退有肯定的前瞻性。
1.2 Spring Boot 外围个性
Spring boot是一个脚手架(而非框架),构建于Spring框架(Framework)根底之上,基于疾速构建理念,提供了主动配置性能,可实现其开箱即用个性(创立完一个根本的我的项目当前,可零配置或者大量配置即可运行咱们的我的项目),其外围次要有如下几个方面:
起步依赖(Starter Dependency)。
主动配置(Auto Configuration)。
健康检查(Actator)-监控。
其中,SpringBoot官网地址为:
2.springboot的环境配置
2.1 筹备工作
工具下载
- 下载JDK1.8,并进行环境变量配置(如果已有则无需再次下载和配置)。
- 下载最新maven(例如apache-maven-3.6.3,网址http://maven.apache.org/)并解压。
- 下载sts最新版(例如sts-4.4.5.RELEASE,sts网址并解压(新版本下载下来时一个.jar]文件,须要在jar文件所在的目录中,以命令行形式执行java -jar 下载的文件名的形式进行解压,如图-1所示(须要首先启动零碎自带的命令行客户端,而后切换到软件所在目录,cd指令为切换目录的意思)。
工作区筹备:定义新的工作区(要求没有中文目录),例如d:/TCGBIII/CGBWORKSP。
倡议:将下载的所有文件存储到同一目录并解压,例如d:/TCGBIII/TCGBTOOLS目录。要求目录不要有中文,也不要有特殊符号(例如&等)。
2.2 Maven根本配置
关上maven中的setting.xml文件,并对其如下选项进行配置。
配置maven本地库(从maven近程服务器下载的资源存储到的地位)
<localRepository>${user.home}/.m3/repository</localRepository>
配置maven私服(近程仓库)(配置到mirrors标签外部)。
<mirror> <id>aliyun</id> <name>aliyun for maven</name> <mirrorOf>\*</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror>
配置maven中的profile(配置到profiles标签外部),设置JDK编译和运行版本。
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion> 1.8 </maven.compiler.compilerVersion> </properties></profile>
2.3 STS整合maven配置
step1,启动STS工具,
step2,Maven Installations配置,
step3, Maven User Settings配置,
我的项目工作区编码设为UTF-8,图略
3.springboot的疾速入门
3.1 我的项目创立及构造剖析
关上STS 集成开发工具,创立spring boot我的项目,其具体步骤如下:
第一步:关上我的项目新建窗口(快捷键ctrl+n), 搜寻spring,抉择spring starter 我的项目。
第二步:填写我的项目根本信息。
第三步:抉择Spring Boot版本,图略:
在第三步图中点击finish之后,我的项目便开始从maven配置中指定的私服服务器(例如阿里云的maven服务器)去下载起步依赖(SpringBoot我的项目中默认指定了我的项目启动时须要的一些jar包依赖),这个过程可能会比拟耗时(网络最好不要用手机网络,会导致很多资源下载不下来),如果指定版本的springboot我的项目以前创立过,它会默认先从本地库查找,如果本地库没有,则从近程库去下载。
我的项目创立胜利当前,其包视图(Package Explorer)构造。
其中,在图-13出现的CGB-SBOOT-01我的项目构造中,所有的类和配置文件都是创立好我的项目当前,由STS工具帮咱们主动创立的。
创立springboot我的项目的目录构造(即类地位),
当创立一个maven我的项目呈现了pom.xml文件谬误或者我的项目中红色叉号或叹号怎么办? 可在我的项目上右键,对我的项目进行强制maven update。
如何导入一个maven我的项目(例如通过start.spring.io网页间接生成的我的项目)?
鼠标右键import,搜寻maven,找到已存在的maven project间接引入我的项目的门路即可。
如何通过start.spring.io网页间接生成一个springboot我的项目?
3.2 我的项目启动过程剖析(理解)
找到我的项目的入口类(应用了@SpringBootApplication注解形容),而后运行启动类,检测启动过程,SpringBoot在启动时,控制台会呈现如图-14标识(图略):
思考:SpringBoot工程在启动时做些什么?
1)通过线程调用相API从指定门路查找相干的配置文件(.class文件)。
2)调用IO对象从磁盘中读取文件(将文件内容读到内存--cpu只能从内存读取数据)。
3)检测类是否有特定的注解形容(例如:@Controller,@Service,@Component ....)
4)Spring框架基于工厂对象(BeanFactory)为指定class创立实例对象,并基于配置形容对这些对象进行初始化操作。
5)将对象存储中Spring框架治理的池中(Bean池--其底层设计在这里是一个map)
我的项目启动时产生了什么呢?我在这里画了张图帮大家进行一下剖析
3.3 我的项目业务初步实现及测试
业务实现:
基于SpringBoot脚手架,通过Spring框架进行Bean对象的治理实现。
第一步:创立一个DefaultCache类而后交给spring 治理。
package com.cy.pj.common.cache;/** * @Component是Spring中用于形容Bean类的一个注解。用于通知Spring这个类的实例由Spring创立, * 当此对象由Spring创立和治理时,默认会将对象存储到池(Bean池)中。 */@Componentpublic class DefaultCache {}
第二步:增加sringboot 测试类,进行bean的获取及测试,要放在test目录中:
package com.cy.pj.common.cache;@SpringBootTest//注解用于通知spring框架,此测试类交给spring治理。这个注解形容的类也会由spring框架进行创立,并且进行值的注入(赋值)public class DefaultCacheTests { @Autowired //@Autowired注解形容的属性,由spring框架进行值的注入(赋值) private DefaultCache defaultCache; @Test public void testCache() { System.out.println(defaultCache); }}