Maven坐标是Maven中的一个重要概念,用于唯一标识一个Maven项目的依赖关系。
Maven生命周期,也叫lifecycle,是Maven对构建过程的抽象。它通过定义一系列阶段来组织和管理构建任务,这些阶段依次执行,以完成从清理、初始化、编译、测试、打包、集成测试、验证、部署到生成站点等几乎所有构建步骤。
具体来说,Maven的生命周期可以划分为以下三个主要阶段:
Clean生命周期:这一阶段的目标是清理项目,移除所有上一次构建生成的文件。它进一步分为pre-clean(执行一些需要在clean之前完成的工作)、clean(执行清理操作)和post-clean(执行一些需要在clean之后立刻完成的工作)三个子阶段。
Default生命周期(也称为Build生命周期):这是Maven的主要生命周期,被用于构建应用。这个阶段包括了诸如验证项目的正确性(validate),编译项目的源代码(compile),运行项目的单元测试(test),将编译后的代码打包成可分发的格式(package),对项目进行额外的检查以确保质量(verify),以及将项目的构建结果安装到本地Maven仓库中,以供其他项目使用(install)等一系列步骤。
Site生命周期:这个阶段的目标是生成项目站点,包含了如报告生成,文档生成等步骤。
值得注意的是,Maven的生命周期是抽象的,因此它不做任何的实际工作,所有的任务都由插件(plugin)完成。
请求参数在请求行中,没有请求体,如: /brand/findAll?name=OPPO&staus=1。GET请求大小是有限制的。
请求参数在请求体中,POST请求大小是没有限制的。
在HTTP请求中,GET和POST是两种最常被使用的请求方式。GET是从指定的资源请求数据,而POST则是向指定的资源提交要被处理的数据。
原理上,GET和HEAD方法被称为安全方法,因为它们不会修改服务器上的信息。这意味着使用GET和HEAD的HTTP请求不会在服务器上产生任何实质性的结果。然而,这并不意味着这些安全方法不会执行任何操作,只是它们不会修改信息。相较之下,根据HTTP规范,POST可能会修改服务器上的资源。
此外,GET和POST方法在使用上有一些明显的区别。例如,GET提交参数一般会显示在URL上,而POST通过表单提交,其内容则不会显示在URL上,因此POST更具隐蔽性。同时,GET请求可被缓存、保留在浏览器历史记录中、收藏为书签,但不应该在处理敏感数据时使用。相对地,POST方法不能被缓存、收藏为书签或保留在浏览器历史记录中。
从实际应用的角度来看,由于GET请求把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,因此在URL中可以看到。与此相反,POST方法是通过HTTP post机制,将表单内各个字段与其内容一起传送到ACTION属性所指的URL地址,对于用户来说这个过程是看不到的。
最后,需要注意的是,虽然理论上GET和POST方法都没有数据量限制,但实际上受浏览器、操作系统以及服务器的限制,GET传送的数据量较小,一般不能大于2KB;而POST传送的数据量较大,通常被默认为不受限制。
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):
1XX | 响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它 |
2XX | 成功-表示请求已经被成功接受,处理已完成 |
3XX | 重定向-重定向到其他地方;让客户端再发起一次请求以完成整个处理 |
4XX | 客户端错误--处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等 |
5XX | 服务器端错误--处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等 |
着重记住:
200:客户端请求成功
404:请求资源不存在,一般是URL输入有误,或者网站资源被删除了
500:服务端发生不可预期的错误
在Spring MVC中,@RequestParam
注解用于将请求参数绑定到方法参数上。当你使用List
作为方法参数时,Spring会自动将请求中的多个相同名称的参数值收集到一个列表中,并将这个列表作为hobby
参数的值。
如果不使用@RequestParam
注解,Spring无法正确地将请求参数绑定到方法参数上。例如,如果你的请求URL是/listParam?hobby=reading&hobby=swimming
,如果没有使用@RequestParam
注解,那么hobby
参数的值将会是一个包含两个字符串"reading"和"swimming"的列表,而不是一个只包含一个字符串"reading,swimming"的列表。
因此,为了确保请求参数能够正确地绑定到方法参数上,你需要在方法参数前加上@RequestParam
注解。
Bean 是一个由 Spring IoC(控制反转)容器管理的对象。Spring Boot 使用注解来定义和配置 Bean,这些注解包括 @Component
、@Service
、@Repository
、@Controller
等。
当 Spring Boot 启动时,它会扫描项目中的类,查找带有特定注解的类,并将这些类实例化为 Bean。然后,Spring IoC 容器会管理这些 Bean,负责它们的生命周期和依赖注入。
依赖注入的注解:
@Autowired:默认按照类型自动装配
一般bean的名称是使用类名的首字母小写的形式指定:类如我们有一个名为 UserService
的类,它可能包含一些业务逻辑方法。此时的bean名为:userService
@Autowired
是 Spring 框架提供的注解,而 @Resource
是 JDK(Java 开发套件)提供的注解,它来自于 JSR-250(Java 250 规范提案)。@Autowired
默认的注入方式是按类型(ByType),而 @Resource
默认的注入方式是按名称(ByName)。支持的参数不同:@Autowired
注解只支持 byType 和 byName 两种方式的自动装配,而 @Resource
注解除了支持 byName 和 byType 外,还支持通过字段名或设置方法名来指定名称进行装配。
@Autowired 还可用于类成员变量、方法及构造函数的标注完成自动装配的工作,而 @Resource 在语义上被定义为通过其唯一的名称来标识特定的目标组件,其中声明的类型与匹配过程无关。
Mapper:Mapper是一个接口,用于定义数据库操作的方法。它通常与MyBatis框架一起使用,将SQL语句映射到Java方法上。Mapper接口中的每个方法对应一个SQL语句,通过传入的参数来执行相应的数据库操作。
Service:Service是一个接口或类,用于处理业务逻辑。它通常包含一些业务方法,如添加、删除、更新和查询等。Service接口或类可以调用Mapper接口中定义的方法来完成具体的数据库操作。
Controller:Controller是一个控制器类,用于处理HTTP请求。它通常包含一些处理请求的方法,如GET、POST、PUT和DELETE等。Controller类可以调用Service接口中定义的方法来完成具体的业务逻辑处理。同时,Controller类还可以返回视图(View)给客户端,展示数据给用户。