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版本如下:

xml 复制代码
<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标签路径下。

编写启动类

java 复制代码
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 服务开发。

相关推荐
弗拉唐2 分钟前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
Red Red5 分钟前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
贰十六1 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
2401_857610031 小时前
SpringBoot社团管理:安全与维护
spring boot·后端·安全
知兀1 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
凌冰_1 小时前
IDEA2023 SpringBoot整合MyBatis(三)
spring boot·后端·mybatis
Natural_yz2 小时前
大数据学习17之Spark-Core
大数据·学习·spark
qq_172805592 小时前
RUST学习教程-安装教程
开发语言·学习·rust·安装
天天进步20152 小时前
Vue+Springboot用Websocket实现协同编辑
vue.js·spring boot·websocket