(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

(SpringBoot)第五章:SpringBoot创建和使用_第1张图片

填写信息如下

(SpringBoot)第五章:SpringBoot创建和使用_第2张图片

选择版本,和依赖

(SpringBoot)第五章:SpringBoot创建和使用_第3张图片

创建完毕

(SpringBoot)第五章:SpringBoot创建和使用_第4张图片

运行

(SpringBoot)第五章:SpringBoot创建和使用_第5张图片

(2)网页端创建

  • Spring Initializr

(SpringBoot)第五章:SpringBoot创建和使用_第6张图片

(SpringBoot)第五章:SpringBoot创建和使用_第7张图片

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

三:项目目录介绍及运行

(1)项目目录介绍

Spring项目结构如下

(SpringBoot)第五章:SpringBoot创建和使用_第8张图片

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

(SpringBoot)第五章:SpringBoot创建和使用_第9张图片

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

(SpringBoot)第五章:SpringBoot创建和使用_第10张图片

(SpringBoot)第五章:SpringBoot创建和使用_第11张图片

(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则不需要

你可能感兴趣的:(spring,boot,后端,java)