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

(SpringBoot)第五章:SpringBoot创建和使用

文章目录

  • 一:Spring和SpringBoot
    • (1)Spring已解决和未解决的问题
    • (2)SpringBoot
  • 二:Spring项目的创建
    • (1)IDEA创建
    • (2)网页端创建
  • 三:项目目录介绍及运行
    • (1)项目目录介绍
    • (2)Hello World
    • (3)约定大于配置

一:Spring和SpringBoot

(1)Spring已解决和未解决的问题

Spring已解决问题:Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能

  • 使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
  • 可以提供众多服务,事务管理,WS等
  • AOP的很好支持,方便面向切面编程
  • 对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA
  • Spring DI机制降低了业务对象替换的复杂性
  • Spring属于低侵入,代码污染极低
  • Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

Spring未解决问题:虽然Spring的组件代码是轻量级的,但它的配置却是重量级的

  • 一开始,Spring用XML配置,而且是很多XML配置
  • Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置
  • Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML

但是

  • 所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间
  • 除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进

(2)SpringBoot

SpringBoot:是一个用于构建独立的、生产级别的基于 Spring 框架的应用程序的开源框架。它是 Spring 生态系统的一部分,旨在简化 Spring 应用程序的开发和部署过程。Spring Boot 提供了一种快速、无配置的方式来创建 Spring 应用程序,减少了繁琐的配置和样板代码,使开发者能够更专注于应用程序的业务逻辑。其特点如下

  • 简化配置:Spring Boot 自动配置了许多常见的应用程序组件,如数据源、Web 服务器、安全等,减少了手动配置的需要
  • 内嵌式容器:Spring Boot 支持内嵌式的容器,如Tomcat、Jetty和Undertow,使应用程序可以作为独立的可执行 JAR 文件或 WAR 文件运行,无需外部的 Web 服务器
  • 开箱即用:Spring Boot 提供了许多预定义的 Starter 依赖,可以轻松集成各种技术和框架,如Spring Data、Spring Security、Thymeleaf、JPA、MongoDB、Redis等
  • 自动配置:Spring Boot 根据应用程序的依赖和配置自动配置 Spring 框架,减少了手动配置的工作
  • 嵌入式数据库支持:Spring Boot 支持内嵌式数据库,如H2、HSQLDB、Derby等,方便开发和测试
  • 生产就绪:Spring Boot 提供了监控、度量、健康检查等功能,使应用程序容易部署和管理
  • 外部化配置:Spring Boot 支持将配置参数外部化,可以使用属性文件、YAML 文件、环境变量等方式来配置应用程序,便于不同环境的部署
  • 微服务支持:Spring Boot 可以与 Spring Cloud 结合使用,构建微服务架构,实现服务发现、负载均衡、断路器等功能

总而言之,SpringBoot最核心的就是以下三点

  • 快速添加依赖
  • 内置Web容器
  • 自动装配

二:Spring项目的创建

(1)IDEA创建

  • 注意:社区版无此选项
  • 2022.12官方发布SpringBoot3,基于Spring6,要求最低JDK版本17

新建project,选择Spring Initializr

在这里插入图片描述

填写信息如下

在这里插入图片描述

选择版本,和依赖

在这里插入图片描述

创建完毕

在这里插入图片描述

运行

在这里插入图片描述

(2)网页端创建

  • Spring Initializr

在这里插入图片描述

在这里插入图片描述

点击⽣成按钮会下载⼀个 Spring Boot 的 zip 包,解压后,用IDEA打开

三:项目目录介绍及运行

(1)项目目录介绍

Spring项目结构如下

在这里插入图片描述

其中.mvnHELP.mdmvnwmvnw.cmd这个四个文件(文件夹)没有什么作用,可删除

在这里插入图片描述

SpringBoot项目的启动类默认名字叫做DemoApplication,右键运行即可

在这里插入图片描述

在这里插入图片描述

(2)Hello World

我们学习Java EE目的就是要实现Web项目或接口的,之前的SpringFrameWork只不过是一个普通的Java项目,无法直接和浏览器交互。因此,现在我们需要使用SpringBoot来实现交互

创建一个UserController文件,然后添加注解

  • @RestController=@Controller+@ResponseBody
package com.example.springfirstdemo_2023_11_09;  import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.ResponseBody;  @Controller // 当前类为控制器  
@ResponseBody // 返回的是数据而非页面  
public class TestController {  @RequestMapping("/hi") // 路由注册  public String sayHello(String name) {  return "Hello";  }  
}

在这里插入图片描述

(3)约定大于配置

约定大于配置:是 Spring Boot 框架的设计理念之一,它强调通过一系列的默认约定来减少配置的工作,从而简化开发过程。这一理念的目标是提高开发者的生产力,使得开发过程更加快速和简便。比如在Spring中是需要配置扫描路径的,而SpringBoot则不需要

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

相关文章:

  • Linux重定向
  • Python之文件与文件夹操作及 pytest 测试习题
  • 物联网:实现数据驱动决策,推动经济发展
  • Leetcode 2929. Distribute Candies Among Children II
  • 【面经】ES中分片是什么?副本是什么?
  • 【算法练习Day46】判断子序列不同的子序列
  • Java设计模式之访问者模式
  • PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?
  • ubuntu 设置最大带宽
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
  • Django配置文件,request,链接mysql方法,Orm简介
  • ubuntu下载各个版本chrome方法
  • Http状态码502常见原因及排错思路(实战)
  • 国际阿里云:无法ping通ECS实例公网IP的排查方法!!!
  • Nginx缓存基础
  • 【数据结构】Lambda
  • 力扣labuladong——一刷day28
  • 2023年CCF非专业级别软件能力认证第二轮 (CSP-S)提高级C++语言试题
  • 华为ensp:静态默认路由
  • xss 通过秘籍
  • Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)
  • Flutter笔记:光影动画按钮、滚动图标卡片组等
  • 【论文】利用移动性的比例公平蜂窝调度测量和算法
  • 内存条选购注意事项(电脑,笔记本)
  • ChatGPT 宕机?OpenAI 将中断归咎于 DDoS 攻击
  • go单元格测试
  • JavaScript理解表达式和语句的含义
  • Visual Studio导入Wiinform项目文件,引用显示黄色感叹号
  • 深入研究SVN代码检查的关键工具:svnchecker vs. SonarQube,选择最适合你的代码检查工具
  • 博客积分上一万一千了