赞
踩
Spring的目的是为了解决企业级应用开发的复杂性而创建的,简化开发。
SpringBoot就是一个JavaWeb的开发框架。
SpringBoot是整合Spring技术栈的快速开发脚手架。
SpringBoot适用条件(官方规定):
此外,不同版本的Springboot,可能还对java或Maven版本有要求。这个对于每个版本可以查看它的reference Doc参考文档。
参考文档里面有个Getting Started快速上手。
在Getting Start中找到System Requirements系统环境。
springboot可以做的一些事情:
springboot的两个技术栈:
Springboot的优缺点:
all in one 单体应用架构:
架构效果图:
微服务是一种架构风格。一个应用拆分为一组小型服务。
实现分布式要解决的问题:
这就可以通过SpringCloud 和 SpringCloud DataFlow(数据流)来解决。
云原生了解。
官方提供了一个快速生成的网站,IDEA也集成了这个网站。
从官方生成一个springboot程序,去Spring Boot官方 , 找到Spring Initializr。来创建一个Spring Boot程序。
之后,就可以选择版本什么的生成一个SpringBoot项目:
配置Maven的一些信息,让maven自动用jdk1.8版本来进行项目编译。
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> <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> </profiles>
创建一个普通的maven项目。
将一个普通的maven项目一步步演变成SpringBoot项目:
第一步:配置Pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.itholmes</groupId> <artifactId>boot-01-helloworld</artifactId> <version>1.0-SNAPSHOT</version> <!--引入父工程依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.4</version> </parent> <!--即插即用,需要导入什么就导入什么。--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project>
第二步:创建MainApplication类,并且编写代码。
package com.itholmes.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@SpringBootApplication注解作用:告诉SpringBoot,这是一个Springboot应用。
//@SpringBootApplication注解标注的类是主程序类。
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
第三步:就可以编写业务逻辑了。
package com.itholmes.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handler01(){
return "Hello,Spring Boot 2!";
}
}
就可以启动SpringBoot程序来检验了。
第三步:创建application.properties文件。
# 修改端口号
server.port=8888
第四步:可以将整个SpringBoot打成jar来使用。
第五步:执行jar包。
像开始的这些图标啥的,想要修改的话,可以通过SpringBoot banner(引文意思:横幅广告)工具来生成:
对于springboot的所依赖包的版本什么的,都是来源于父工程:
<!--
父工程的作用:
用来做依赖管理的。
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
</parent>
在spring-boot-starter-parent中,还有一个父工程spring-boot-dependencies:
<!--
spring-boot-dependencies包含了很多springboot所依赖的包。
也就是环境,为我们搭建好了。
也就是所谓的依赖管理。
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.4</version>
</parent>
依赖管理的优点:
如果想要修改一些对应的jar包的版本,例如mysql.version想要改成8版本的。
<!-- 父工程的作用: 用来做依赖管理的。 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.4</version> </parent> <!--直接在pom文件中,定义版本,这里的版本标签要和,父工程对应相同!--> <properties> <mysql.version>8.0.16</mysql.version> </properties> <!--即插即用,需要导入什么就导入什么。--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>
注意可能有些jar包,是非版本仲裁的。就是springboot的依赖管理里面,没有管理该jar包。这个时候不要忘记导入。
在官方的,每个springboot对应的参考文档下,的Using Spring Boot,查看starter。
官方指定的starter的名字:
官方给出了一些starter,即插即用,在哪个场景下,就是用那个starter。
也有第三方给出的starter,甚至自己创建的starter。命名方式一般如下:
所有场景启动器最底层的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.6.4</version>
<scope>compile</scope>
</dependency>
例如:在pom文件中,导入的spring-boot-starter-web就包含了tomcat,springmvc全套的依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
默认的包结构:
如果我们就想扫描,不和主程序在同一个包及其子包下的话,也是可以配置的。
package com.itholmes.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
//@SpringBootApplication注解的scanBasePackages可以修改扫描范围。
@SpringBootApplication(scanBasePackages="com.itholmes")
public class MainApplication {
public static void main(String[] args) {
//这里的run就是IOC容器。给我们返回了IOC容器。
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
}
}
@SpringBootApplication注解源码中,它还被三个注解修饰。
主程序:
package com.itholmes.boot; import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; //直接使用这三个也是可以达到效果的 @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(basePackages="com.itholmes.boot") public class MainApplication { public static void main(String[] args) { //这里的run就是IOC容器。给我们返回了IOC容器。 ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args); } }
SpringBoot都是有默认配置的,需要配置什么就可以在application.properties中配置。
按需加载所有自动配置项:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。