当前位置: 首页 > news >正文

1_Springboot(一)入门

Springboot(一)——入门

本章重点:

1.什么是Springboot;

2.使用Springboot搭建web项目;

一、Springboot

1.Springboot产生的背景

Servlet->Struts2->Spring->SpringMVC,技术发展过程中,对使用者来说越来越简单,成本越来越低。

假设让你使用Spring开发一个简单的Hello World Web应用程序,你该做什么?

  • 一个项目结构,其中有一个包含必要依赖的Maven构建文件,最起码要有Spring MVC和Servlet API这些依赖。
  • 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
  • 一个启用了Spring MVC的Spring配置。
  • 一个控制器类,以“Hello World”响应HTTP请求。
  • 一个用于部署应用程序的Web应用服务器,比如Tomcat。

最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢?

问题:Spring框架存在了大量的xml配置文件和依赖关系,为了解决这些问题,出现了Springboot框架。

2.什么是Springboot

随着动态语言的流行(Ruby、Groovy、Scala、 Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下,Spring Boot应运而生。

Spring Boot是Spring平台的一个全新的框架。目的是简化Spring框架应用中的初始化搭建和开发过程。Spring Boot基于Spring4进行的设计。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

3.Spring Boot核心功能

  1. 独立运行的Spring项目

    Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需通过java–jar xx.jar来运行。

  2. 内嵌Servlet容器

    Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样我们无须以war包形式部署项目。

  3. 提供starter简化Maven配置

    Spring提供了一系列的starter pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web时,会自动加入如图1-1所示的依赖包。

    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-WVg6WQBE-1709293695144)入门.assets/S1 (0).png)

  4. 自动配置Spring

    Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean,而Spring Boot没有提供支持,则可以自定义自动配置。

  5. 准生产的应用监控

    Spring Boot提供基于http、ssh、telnet对运行时的项目进行监控。

  6. 无代码生成和xml配置

    Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,在3.5节有过简单的演示,本章将用大量的篇幅讲解Spring Boot实现的核心技术。

    Spring 4.x提倡使用Java配置和注解配置组合,而Spring Boot不需要任何xml配置即可实现Spring的所有配置。

4.使用Sptingboot的好处

  1. 快速构建项目,无需xml配置文件;

  2. 无需手动管理jar包的依赖关系,使用Maven来进行统一管理;

  3. 无需外部服务器,有内置的tomcat服务器,可以直接启动项目;

  4. 配置热部署和自动启动;

  5. 对主流开发框架的无配置集成;

  6. 提供运行时的应用监控;

  7. 极大地提高了开发、部署效率;

  8. 与云计算的天然集成。

二、使用Springboot搭建web项目

1.创建项目maven项目;

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-CHHxOazC-1709293695148)入门.assets/S1 (1).png)

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-MdfkKYWh-1709293695149)入门.assets/S1 (2).png)

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-ij2T0ygb-1709293695150)入门.assets/S1 (3).png)

2.在pom.xml文件中添加Springboot依赖关系

	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-parent</artifactId><version>2.0.5.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies>

3.创建Springboot项目的启动类

注:启动类必须在最外层

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-D5zoq37i-1709293695153)入门.assets/S1 (4).png)

4.编写Controller层

@RestController
public class FirstController {@RequestMapping("hello")public String hello(){return "Hello";}
}

@RestController标注这个程序是一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。

5.启动服务进行访问

http://localhost:8080/test/hi

springboot内置tomcat默认端口号为8080,项目路径“”

一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。

5.启动服务进行访问

http://localhost:8080/test/hi

springboot内置tomcat默认端口号为8080,项目路径“”

http://www.lryc.cn/news/309534.html

相关文章:

  • Docker Machine简介
  • GWO优化高斯回归预测(matlab代码)
  • LaTeX-设置图像与表格位置
  • STM32 DMA入门指导
  • mysql根据指定顺序返回数据--order by field
  • IEEE SGL与NVMe SGL的区别?
  • struct内存对齐
  • 探索Redis 6.0的新特性
  • 关于CSS中定位的教程
  • 抽象类、模板方法模式
  • 消息队列kafka
  • 复盘成长——2024.2月复盘
  • Kafka安全模式之身份认证
  • 3、Redis-List【常用】
  • 黑马c++ STL部分 笔记(7) list容器
  • 关于使用Mxnet GPU版本运行DeepAR报错解决方案
  • 【STM32】江科大STM32学习笔记汇总(50)
  • LabVIEW非接触式电阻抗层析成像系统
  • 蓝桥杯备战刷题three(自用)
  • 密码学——二次剩余
  • 10.7、华为数通HCIP-DataCom H12-821单选题:121-140
  • 多租户篇 | MatrixOne与MySQL全面对比
  • python Matplotlib Tkinter-->导出pdf报表
  • react-组件基础
  • The authenticity of host ‘github.com (20.205.243.166)‘ can‘t be established.
  • arduino uno R3驱动直流减速电机(蓝牙控制)
  • 智能家居控制系统(51单片机)
  • 软考高级系统分析师之 URL 知识点和例题
  • vmware虚拟机centos中/dev/cl_server8/root 空间不够
  • C++/数据结构:AVL树