您的位置:首页 > 文旅 > 美景 > 成全视频免费高清观看在线韩剧_茂名企业建站程序_seo学习论坛_百度如何推广网站

成全视频免费高清观看在线韩剧_茂名企业建站程序_seo学习论坛_百度如何推广网站

2025/3/11 18:33:01 来源:https://blog.csdn.net/for_no_what/article/details/144092948  浏览:    关键词:成全视频免费高清观看在线韩剧_茂名企业建站程序_seo学习论坛_百度如何推广网站
成全视频免费高清观看在线韩剧_茂名企业建站程序_seo学习论坛_百度如何推广网站

写一点我在做云盘项目的时候对SpringBoot框架的理解

Bean

对于Spring,我们可以把他理解为一个容器。我们命令这个容器完成一些任务。这个容器里的东西就是Bean。Bean可以是任何的java对象。但这个对象(Bean)不由程序员直接控制,而是由Spring容器控制。控制的内容包括Bean的基本信息,作用域,初始化方法和生命周期等等。使用Bean的好处在于可是现实注入依赖(DI),不同组件之间功能解耦,更好地控制生命周期等等
Bean的生命周期有创建实例,注入依赖,初始化,使用和销毁。
Bean的作用域有单例,原型(Prototype),会话等等。

MVC

SpringBoot框架使用MVC设计模式(那么他当然集成了Spring MVC框架)

MVC指的是 model view和controller。关于他们的关系可以大致这么理解:model负责处理后端服务器,包括和数据库的链接和一些后端服务,view就是前端用户看到的页面,而controller则是调用model和view的一个控制器,可以把他理解成前后端的一个中介

在一个简单SpringBoot任务中,通常会含有config,controller,dao,model,service和util文件夹,他们在MVC中扮演的角色如下所示​​
在这里插入图片描述
其中crud指的是数据库的:创建,读取,更新,删除

Sping容器

Spring 容器可以看作是实现了工厂模式、单例模式和代理模式等设计模式的综合体:
工厂模式: 负责创建和管理 Bean 对象。
单例模式: 默认情况下,容器会为每个 Bean 创建一个单例对象。
代理模式: 用于实现 AOP 和动态代理功能。

理解的话感觉可以就把Spring容器理解成一个工厂,只不过他实现了比工厂更多的内容

反射

依赖注入:通过反射动态创建对象并注入依赖。

SpringBoot框架会首先扫描全部的类,并找到被@Service等修饰的类。扫描:启动main函数之后SpringBoot会扫描@SpringBootApplication(即主文件)所在包及其子包中的所有类,起始路径又主文件所在包的路径决定。
随后通过反射机制、根据类的全称限定名获取类的.class文件,然后用classLoader加载每个类,检查他们是否包含Spring注解(@Component、@Service、@Controller、@Repository等),如果是的话这个对象会被注册到Spring容器中,形成一个Bean。

如果某个类中有东西被@Autowired、@Resource等注解,Spring 会通过反射查找对应的 Bean 并将这个Bean注入到对应字段或参数中。这样这个属性实际上就变成了这个注入类对应的Bean实例。

注入依赖的主要目的是实现控制类和其他类之间解耦。控制类不再依赖于其他类的具体实现细节,而是依赖于他的抽象或接口。

动态代理:利用反射实现 AOP 和事务管理。

注解解析:扫描注解并根据元数据实现功能。

配置解析:反射调用配置类的方法或加载自动配置类。

方法调用:动态绑定方法参数并调用目标方法。

日志

日志是在控制台或一些文件或一些其他地方打印出来的信息,用于帮助我们更好的监控程序运行情况,日志一般长这个样子。

2024-11-26 10:30:45 INFO  [main] com.example.MyClass - Application started successfully

日志根据他表示信息的细节程度不同有以下几种类型(越细说明越不重要)
在这里插入图片描述
在SpringBoot中,已经集成了LogBack,我们只需要再加上一个简单的Slf4j库就可以很简单地创建一个Logger对象并输出日志了。但每条日志依然需要我们自己去操控来实现输出

需要注意的是,每个项目都会设置一个日志等级,如果定义的等级低于设置的等级(即他的粒度更细,更不重要),那么定义的这个日志将不会输出。

session

session:会话 cookie的一部分,跟踪和这个用户和服务器之间的联系。Session 是一种逻辑上的状态存储机制,弥补了 HTTP 协议无状态的特性# 某些注解的作用。在用户登录时(或其他需要的时候),可以显式地创建为一个请求创建一个session,并在用户退出的时候清除这个session。

request.getSession().setAttribute("user", user);
request.getSession().invalidate();

在用户首次登录的时候,SpringBoot框架会自动为用户创建一个cookie。在调用getSession的时候(创建Session时)SpringBoot会为这个Session自动创建一个ID并储存在cookie中。当关闭Session的时候,其实也是SpringBoot框架根据用户被分配的ID找到对应的Session来完成关闭

一些注解

@Controller:

告诉SpringBoot框架(或者说是Spring容器)这是一个controller。以便告知容器对他进一步扫描

@Autowired:

告知Spring容器需要对这个对象进行注入

@ResponseBody:

如果一个方法被这个直接修饰了,那么他的返回值将不再以view视图返回给前端,而是被转化为JSON格式,通过HTTP协议发送给前端。
可以使用@RestController注释整个类来同时实现@Controller和@ResponseBody的作用

@RequestMapping:

告诉SpringBoot框架这是一个处理请求的一个方法,当收到对应路径的请求时,由这个方法来处理请求

@RequestParam:

在方法的参数中使用。用于从请求消息中获取一些参数,其基本语法是

@RequestParam(value = "name", required = false, defaultValue = "111") String name

value参数表明他要获取请求中的哪个内容,如果value名和后面对象名相同的话可以省略。required参数表明这个参数是否是必须的(如果是必须而请求中没有而且没有defaultValue的话会报错)。defaultValue 标明默认值。
@RequestParam获取参数的能力和.getParameter()是相同的,不过是语法不一样,简洁性和功能性不一样

@Value:

这个注解告诉SpringBoot需要从配置文件中找到相应的值来赋给下面的参数,比如

@Value("${key}")

就告诉SpringBoot需要从配置文件中找到key并把key的值赋给被注解的属性(或者方法的参数)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com