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

springboot学习笔记第一天

springboot的简单了解

Java Spring 是一个开源的轻量级应用框架,在 Java 应用开发中起到了简化开发、提高效率、促进模块化和松耦合、支持技术集成等多重作用,成为了广大企业和开发者首选的企业级 Java 应用开发框架之一。

Spring Boot 是一个基于 Spring 框架的开源项目,Spring Boot 极大地简化了基于 Spring 的应用程序的开发和部署过程,使得开发者能够更专注于业务逻辑的实现而不是处理框架的配置和集成问题。

xml和maven

想要搭建一个springboot框架,我们需要简单配置xml和maven

xml

在 Spring 框架中,XML 是一种常用的配置方式,用于配置和声明 Spring 应用程序的各种组件、依赖关系、以及其他相关的配置信息。

使用apache-maven-3.8.1
路径apache-maven-3.8.1\conf\settings.xml
在这里插入图片描述
localRepository,这个路径是为配置maven做准备,将你要下载的maven放到指定的目录,其他的东西可以不动。

maven

在idea中配置maven,打开idea,右上角小齿轮,选择Settings
在这里插入图片描述
在打开的Settings中左上角搜索maven,右侧Maven home path填入下载的apache-maven-3.8.1的路径,User settings file在home path路径后加上\conf\settings.xml,若不可用记得勾选Override
在这里插入图片描述

maven项目的坐标值

创建一个maven项目,在pom.xml中,groupId+artifactId+version就可以确定一个maven项目
在这里插入图片描述
在https://mvnrepository.com/网站上搜索Spring Boot Starter Web使用2.66版本如下:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.6.6</version>
</dependency>

复制后插入到pom.xml中,等待idea配置和下载完成,下载的maven包会在settings.xml文件中自行配置的localRepository标签路径下。

编写启动类

package org.example;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class EasySpringAApplication {//项目启动类  运行该类就运行了整个项目public static void main(String[] args) {SpringApplication.run(EasySpringAApplication.class,args);//run有两个参数,(本类的类对象,args)}
}

spring Bean的作用域

在 Spring Framework 中,Bean 的作用域(Scope)定义了 Spring 容器如何管理和提供 Bean 的实例。Spring 支持多种作用域,每种作用域都适用于不同的应用场景和需求。

Singleton(单例)

默认的作用域。
在整个应用程序的生命周期中,Spring 容器只创建 Bean的一个实例,并且所有请求都共享这个实例。
适用于那些状态无关、可共享的 Bean,例如数据访问对象(DAO)、服务类等。

Prototype(原型)

每次请求时,Spring 容器都会创建一个新的 Bean 实例。
每个请求都会返回一个新的 Bean 实例。
适用于那些状态相关、不可共享的 Bean,例如 HTTP 请求处理器、线程相关的 Bean 等。

Request(请求)

每个 HTTP 请求都会创建一个新的 Bean 实例,该 Bean 仅在当前 HTTP 请求内有效。
适用于 Web 应用程序中需要在每个 HTTP 请求中具有独立状态的 Bean。

Session(会话)

每个 HTTP 会话(Session)都会创建一个新的 Bean 实例,该 Bean 仅在当前 HTTP 会话内有效。
适用于 Web 应用程序中需要在整个会话期间保持状态的 Bean,例如用户登录信息。

Global Session

类似于 Session 作用域,但仅适用于 Portlet 环境。
在 Portlet 应用程序中,全局会话是在整个 Web 应用程序的生命周期内有效的会话。

Spring IOC

管理项目中的java bean的生命周期
在项目运行阶段,程序中需要很多的对象来完成整体业务

Spring Framework 提供了多种注解来简化配置和管理依赖注入。这些注解使得在Spring应用程序中声明Bean和依赖关系更加方便和直观。

常用的Spring IOC注解类

@Component:通用的组件注解,用于标识一个类为Spring的组件,会被Spring自动扫描并纳入到IOC容器中管理。

@Repository:用于标识持久层的DAO组件,通常与数据访问相关。

@Service:用于标识业务层的Service组件,通常用于定义业务逻辑。

@Controller:用于标识控制层的Controller组件,通常用于处理HTTP请求。

@RestController:结合了@Controller和@ResponseBody,用于RESTful风格的控制器。

@Configuration:用于定义配置类,替代XML配置文件,可以结合@Bean注解使用。

@Bean:在@Configuration类中使用,声明一个Bean,并交由Spring容器管理。

@Autowired:自动装配注解,可以用于字段、构造方法、Setter方法上,Spring会自动注入匹配的Bean。

@Qualifier:与@Autowired一起使用,指定具体要注入的Bean名称,解决自动装配的歧义性。

@Value:用于注入属性值,支持SpEL表达式。

@Scope:用于指定Bean的作用域,如单例、原型等。

@PostConstruct:在Bean创建后,初始化方法调用前执行。

@PreDestroy:在Bean销毁前执行的方法。

@Lazy:懒加载注解,延迟初始化Bean。

@Primary:用于解决自动装配时的多个Bean候选者的歧义性,指定首选的Bean。

让spring管理这些类的对象的生命周期
spring提供了IOC(控制反转)的方式方便获取该对象
容器和代码之间的控制权反转,代码中不需要明文调用方法来得到对象,只需要声明该类需要什么类型的对象即可

Spring MVC

Spring MVC 是 Spring Framework 中的一个模块,用于开发基于 Java 的 Web 应用程序。MVC 是 Model-View-Controller 的缩写,是一种常见的设计模式,用于分离应用程序的数据模型、用户界面和控制逻辑。

模型(Model):
模型代表应用程序的数据和业务逻辑。
在 Spring MVC 中,模型通常由 POJO(Plain Old Java Object)组成,它们可以通过注解(如 @ModelAttribute)进行标记,从而在视图和控制器之间传递数据。
视图(View):

视图负责呈现用户界面。
Spring MVC 支持多种视图技术,包括 JSP、Thymeleaf、FreeMarker 等。开发者可以根据需求选择合适的视图技术。

控制器(Controller):
控制器负责处理用户请求、调用业务逻辑,并决定返回哪个视图给用户。
在 Spring MVC 中,控制器通常由带有 @Controller 或 @RestController 注解的类来实现,这些类处理特定的 URL 请求,并返回相应的数据或视图。

请求-处理-响应流程:
Spring MVC 使用前端控制器(DispatcherServlet)作为所有请求的入口点。
DispatcherServlet 根据请求 URL 调用适当的控制器,并将请求的处理委派给控制器。
控制器处理完请求后,将数据存储在模型中,并返回一个逻辑视图名(或者直接返回数据给客户端,如果是 RESTful API)。
DispatcherServlet 根据视图解析器(ViewResolver)将逻辑视图名解析为实际的视图对象,并最终呈现给用户。

注解驱动开发:
Spring MVC 提供了丰富的注解支持,如 @Controller、@RequestMapping、@GetMapping、@PostMapping 等,简化了控制器的开发和配置。

数据绑定与验证:
Spring MVC 支持将 HTTP 请求参数绑定到方法参数、表单对象或者命令对象。
还提供了强大的数据验证机制,通过注解(如 @Valid)和 Validator 接口实现数据验证。

RESTful Web 服务支持:
Spring MVC 提供了对 RESTful 风格的 Web 服务的支持,通过 @RestController 注解和 HTTP 方法映射实现。
总体来说,Spring MVC 提供了一个强大且灵活的框架,用于开发基于 Java 的 Web 应用程序,支持传统的 MVC 架构和 RESTful 风格的 Web 服务开发。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CF962 E. Decode
  • 「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(四)
  • Python爬虫技术 第27节 API和RESTful服务
  • DITA的优点和缺点
  • 不可错过的2024翻译工具合集,提升沟通效率必备
  • windbg dmp文件
  • 网络安全之扫描探测阶段攻防手段(二)
  • 基于WEB的仓库管理系统的设计与实现
  • 阿里云上快速部署Dify社区版
  • Matlab|考虑大规模电动汽车接入电网的双层优化调度策略
  • transform详解
  • vite解决前端跨域步骤
  • 8.1-java+tomcat环境的配置+代理
  • 手机在网状态接口如何对接?(一)
  • 猫头虎分享AI写真系统架构分析
  • [译] 怎样写一个基础的编译器
  • 【技术性】Search知识
  • 2019年如何成为全栈工程师?
  • Angular 响应式表单之下拉框
  • C++11: atomic 头文件
  • IDEA常用插件整理
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • PHP 小技巧
  • python_bomb----数据类型总结
  • Python十分钟制作属于你自己的个性logo
  • 后端_MYSQL
  • 坑!为什么View.startAnimation不起作用?
  • 嵌入式文件系统
  • 智能合约开发环境搭建及Hello World合约
  • 智能网联汽车信息安全
  • Java数据解析之JSON
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • !!Dom4j 学习笔记
  • #数据结构 笔记三
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (c语言)strcpy函数用法
  • (pojstep1.1.2)2654(直叙式模拟)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (一)RocketMQ初步认识
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • .bat批处理(六):替换字符串中匹配的子串
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET BackgroundWorker
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 表达式计算:Expression Evaluator
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net反混淆脱壳工具de4dot的使用
  • ?
  • ?php echo ?,?php echo Hello world!;?
  • [AIGC codze] Kafka 的 rebalance 机制
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)