- sping是一个开源框架,2003年兴起的一款轻量级JAVA开发框架,是为了解决企业级应用的复杂性而创建的,简化开发。
-
spring简化开发的原理
1、基于pojo的轻量级和最小侵入性编程,一切东西都是bean。
2、通过Ioc,依赖注入(DI)和面向接口实现低耦合。
3、基于切面(AOP)和惯例进行声明式编程。
4、通过切面和模板减少样式代码
readistemplate xxxTemplate -
springboot的演化过程:
serverlet---->struts---->springMVC---->springboot
在这个过程中,一个复杂的场景,人们只需要通过配置而不需要去实现它,这个时候,强大的配置功能成了他的优点。再随着后来,人们通过实际的生产应用,选取其中实用的精华部分,重构出一些轻量级的架构。之后为了提高开发效率,嫌弃之前的配置太过麻烦,于是开始提倡约定大于配置,进而衍生出一些一站式的解决方案。 -
springboot的优点
1、使得前后端分离,开发人员只专注于写接口或者网页
2、各种默认的配置使的项目的配置简化,没有多余的代码生成 -
准备工作
1、开发环境准备
jdk1.8
tomcat10.x
mysql
mavn3.6
springboot2.x
2、开发工具准备
IDEA(jdk,tomcat,mavn在idea中的配置) -
创建springboot项目有两种创建方式:
-
直接通过官网创建: https://start.spring.io/
-
打开 https://start.spring.io/
-
填写项目信息
-
点击”Generate Project“按钮生成项目;下载此项目
-
解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。
-
如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。
-
通过idea创建:
- 创建一个新项目
- 选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现
- 填写项目信息
- 选择初始化的组件(初学勾选 Web 即可)
- 填写项目路径
- 等待项目构建成功
- 项目结构分析:
- 通过上面步骤完成了基础项目的创建。就会自动生成以下文件。
- 程序的主启动类
- 一个 application.properties 配置文件
- 一个 测试类
- 一个 pom.xml
-
pom.xml 分析
打开pom.xml,看看Spring Boot项目的依赖:
<!-- 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!-- web场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springboot单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 剔除依赖 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
编写一个http接口:
在项目主类的同级目录下创建controller包,在下面创建HelloCtroller.java
package com.springboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.Controller;
/**
* ClassName: HelloController
* Description:
* date: 2021/7/20 17:47
*
* @author zwt<br />
* @since JDK 1.8
*/
@Controller
public class HelloController {
@RequestMapping("/hello")
public Object hello(){
return "hello world";
}
}
访问:http://localhost:8080/hello ,第一个springboot写的接口诞生了,不需要写页面,也能获取到后端返回的值,实现前后端分离编写
-
将项目打成jar包:
- pom文件里面加入依赖
<build>
<plugins>
<!-- 打jar包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--跳过项目运行测试用例-->
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
2.双击mavn下面的 Lifecycle/package
显示 BUILD SUCCESS 说明打包成功
在target下面就能找到打好的包,就可以任何地方跑起来