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

SpringBoot--springboot简述及快速入门

spring Boot是spring提供的一个子项目,用于快速构建spring应用程序

传统方式:

image-20250511214728212

在众多子项目中,spring framework项目为核心子项目,提供了核心的功能,其他的子项目都需要依赖于spring framework,在我们实际开发中,我们可以根据不同的业务需求来选择不同的子项目,通过spring framework子项目把他们整合起来,从而构建一个spring应用程序。

随着我们的业务需求越来越复杂,功能越来越强大,构建spring程序就会越来越麻烦,因此spring官方给我们提供了spring boot专门应用于spring项目的构建,

image-20250511215050703

传统方式构建spring应用程序问题

  • 导入依赖繁琐

例如,我们在编写spring程序时,需要导入相关依赖,且是手动导入,而且这些依赖的jar包可能会造成冲突,jar包冲突的问题也需要去手动解决。非常麻烦。

  • 项目配置繁琐

还需要些很多的配置文件,例如web.xml,springMVC.xml,applicationContext.xml等等

applicationContext.xml是spring项目中的核心配置文件,需要在其中声明配置大量的Bean对象,比如数据库连接池(DataSource),SQLSessionFactorytransactionManagermapperScannerConfigue(扫描映射文件配置)等等不止,这还只是整合mybatis需要的声明配置,随着项目功能越来越强大,需要配置的bean对象也越来越多,越来越繁琐。

springBoot特性

  • 起步依赖(解决导入依赖繁琐的问题)

本质上就是一个Maven坐标,整合了完成一个功能需要的所有坐标。

例如,我们要开发一个web应用,需要引入大量依赖,例如spring-core,spring-web,spring-context,spring-aop等等,在传统方式构建时,需要手动导入,非常繁琐。

而springboot提供了一个起步依赖,在spring-boot-starter-web这个坐标,它将完成web开发需要的所有的坐标全部整合起来放在spring-boot-starter-web这个坐标里,接下来我们在实际开发中,在需要使用web开发时就不需要导入以前如此多的依赖了,只需要引入springboot提供的起步依赖的坐标即可。这里主要借助了Maven传递依赖的特性。

  • 自动配置(解决配置繁琐的问题)

遵循约定大于配置的原则,在boot程序启动后,一些bean对象会自动注入到IOC容器中,不需要手动声明,简化开发。

在传统项目创建中,spring整合MyBatis除了要导入大量依赖,还要在声明配置Bean对象(SQLSessionFactoryBean、MapperScannerCofigurer)。

而在springboot项目中,只需要引入MyBatis的起步依赖,在其内部已经自动声明需要的Bean对象,不需要在配置文件中手动的声明了。

起步依赖+自动配置 = 快速构建spring应用程序

  • 其它特性

    • 内嵌的Tomcat、Jetty(无需部署WAR文件)

    以前开发的web应用程序需要打成war包,再去部署到我们安转的Tomcat,Jetty这样的服务器软件上才能被浏览器访问。而springboot提供了内嵌的Tomcat,即使用springboot构建的应用程序,启动时内部的Tomcat会跟着启动,并且将当前项目里的资源自动部署好。

    • 外部化配置

    传统项目中的配置文件都在工程里,当前工程开发完毕后,打成jar包部署,但是如果一些配置发生了变化,需要在当前工程的配置文件里修改,修改完毕后重新打包并部署。比较繁琐

    springboot提供了外部化的配置,将所有的配置文件都放在了外部的MATA-INF/spring.factories中,如果项目部署完毕之后,想要修改配置,只需要去修改项目外边的配置文件即可,修改完毕后不需要重新编译打包部署,可以直接重启即可。

    • 不需要XML配置(使用properties/yml配置文件)

    传统项目中的XML配置文件写起来十分繁琐复杂,

    在springboot项目中采用properties配置文件(键值对形式)或者yaml/yml配置文件()来编写配置文件。十分简便。

我们可以尝试创建一个springboot项目

springBoot入门

需求:使用springboot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串“hello world”

实现过程:

  • 创建Maven工程

  • 导入spring-boot-starter-web起步依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
  • 编写Controller

 package com.lyc.firstdemo.controller;​import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;​@RestControllerpublic class IndexController {@RequestMapping("/hello")public String index(){return "hello world";}}
  • 提供启动类

image-20250512201529622

测试:

image-20250512202259184

测试成功,我们发现直接创建springboot项目的话,大多数需要的操作系统中已经自己完成了,,我们只需要创建Controller来控制网页,以及导入web的起步依赖。其他的操作已经在底层自动完成了。由此看来,springboot项目确实十分便捷。

注意事项:在springboot项目中打包方式不需要使用war包,因为springboot项目中内嵌了Tomcat,打成jar包就行。

我们已经创建了一个springboot项目并成功测试,并发现springboot项目与普通的Maven项目好像区别不是很多,让我们来尝试利用Maven项目来达到springboot项目中的效果。

手动创建springboot项目

  • 创建Maven工程

  • 引入父依赖以及spring-boot-starter-web起步依赖

 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.5</version></parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
  • 提供启动类

 package com.lyc;​import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;​@SpringBootApplication //注解表示为springboot项目的启动类public class SpringBootCreateManualApplication {public static void main(String[] args) {SpringApplication.run(SpringBootCreateManualApplication.class, args);//调用run方法启动项目}​}
  • 提供controller类

 package com.lyc.controller;​import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;​@RestControllerpublic class IndexController {@RequestMapping("/hello")public String index(){return "hello world----------------niuhbi-----------";}}
  • 在浏览器中测试:

image-20250512203822477

测试成功。

希望让大家对springboot项目有个大概的了解。谢谢大家!

相关文章:

  • 基于 PLC 的轮式服务机器人研究
  • 医疗实时操作系统方案:手术机器人的微秒级运动控制
  • 【Hot 100】208. 实现 Trie (前缀树)
  • 基于C#+MySQL实现(WinForm)企业设备使用信息管理系统
  • niushop单商户V5多门店版V5.5.0全插件+商品称重、商家手机端+搭建环境教程
  • 从数据中台到数据飞轮:数字化转型的演进之路
  • python如何做人脸识别
  • Docker与PostgreSQL
  • 国联股份卫多多与七腾机器人签署战略合作协议
  • 基于Spring Boot+Layui构建企业级电子招投标系统实战指南
  • 工业巡检机器人 —— 机器人市场的新兴增长引擎
  • OpenTiny icons——超轻量的CSS图标库,引领图标库新风向
  • Git 第二讲---提高篇 git的分支管理
  • AD 飞线的显示与隐藏
  • 图论part09dijkstra算法
  • 【时时三省】(C语言基础)使用字符串处理函数
  • 四旋翼控制入门笔记
  • 国内USB IP商业解决方案新选择:硬件USB Server
  • [中国版 Cursor ]?!CodeBuddy快捷搭建个人展示页面指南
  • 在SQL Server中调整查询超时j解决方案
  • 国台办:80年前台湾重归中国版图,80年后不可能让台湾分裂出去
  • 美国明尼苏达州发生山火,过火面积超80平方公里
  • 泽连斯基:将带领乌代表团前往土耳其,已准备好与普京会谈
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • 排污染黑海水后用沙土覆盖黑泥?汕尾环保部门:非欲盖弥彰
  • 人大新闻教育70年丨16759门课程里的时代密码