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

宁波建设业协会网站宜黄县建设局网站

宁波建设业协会网站,宜黄县建设局网站,网站制作价格报表,营销型网站的现状spring Boot是spring提供的一个子项目,用于快速构建spring应用程序 传统方式: 在众多子项目中,spring framework项目为核心子项目,提供了核心的功能,其他的子项目都需要依赖于spring framework,在我们实际…

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项目有个大概的了解。谢谢大家!

http://www.dtcms.com/a/525142.html

相关文章:

  • 详细解释 std::thread t1(ThreadPrinter::print, printer, 1);
  • 云建站的正确步骤客户关系crm管理系统
  • RocketMQ核心技术精讲-----初识RocketMQ与快速上手
  • 青岛的互联网公司有哪些西安做网站优化
  • 香橙派双雄:OPi 6 Plus与4 Pro,以差异化战略切割边缘AI市场
  • openai-cookbook:what makes documentation good(翻译总结)
  • 智能网联汽车网络发展需求与模式分析:面向2030年的核心逻辑
  • java transient关键字有什么用
  • 免费建站哪个比较好大学 生免费商业网站设计
  • perl网站开发企业培训内容有哪些
  • 医疗信创的里程碑:浙江省人民医院异构多活容灾架构的突破与启示
  • KingbaseES数据库:首个多院区异构多活容灾架构,浙人医创新开新篇
  • 标注可用于IP≠实战可用——超50%的IP抗体实际效果欠佳,如何实现0风险IP实验?
  • 建设人才证书查询网站做网站的公司北京有哪些
  • python with 语法
  • tlv32aic32 外部DAC的I2S音频流运行过程分析
  • I/V自动曲线量测仪的主要功能、测量方法和应用
  • 什么是电子负载?爱科赛博电子负载应用探讨
  • 2025.10.24总结
  • 邯郸哪里做网站优化thinkphp企业网站源码
  • BUYCOIN:以社区共治重构加密交易版图,定义交易所3.0时代
  • 建立平台网站需要花多少钱国贸附近网站建设
  • 【Linux C/C++开发】epoll模式的开源库及原生socket实现
  • ARP 报文和 IP 数据报的 区分与联系
  • html网站开发目标临沂做网站多少钱
  • 代谢组学之新手入门级知识概览
  • 开关电源拓扑工程宝典:从原理到实战的深度设计指南
  • 深度学习SE,CBAM,ECA,SimAM模块汇总之SE
  • 10. Python 列表:从单元素更新到切片批量处理
  • 气凝胶基复合相变材料研究进展