java 注解学习补充
注解学习笔记
-
@Primary
:用于解决依赖注入(DI)中多个候选 bean 的歧义性问题。多个同类型的bean候选时,@Primary
可以指定一个首选项,优先选择该bean进行注入 -
@PropertySource
:这个注解用于加载外部的属性配置文件,使得Spring应用程序可以读取这些配置文件中的属性值,@PropertySource
注释只声明了配置文件的位置,需要通过@value
来获得具体属性值 -
@value
注解:将属性值注入到Spring Bean中,用来注入配置文件中的属性值,比如application.properties
或者application.yml
中的属性 -
@Repository
注解:表示一个类是DAO层(数据访问控制层)中的组件 -
@Transactional
注解:用于标记一个方法应该被事务管理器事务化。方法执行前开启一个事务方法有异常回滚该事务,方法执行成功则提交。 -
@CrossOrigin
:Spring中默认禁止跨域,@CrossOrigin
可以标记控制器方法或者类。允许跨域且可以用参数配置跨域细节如@CrossOrigin(orgins = "https://xxx.com")
表示允许来自https://xxx.com
的跨域访问(某个方法) -
@Controller
:一般和@RequestMapping
注解一起使用来处理HTTP请求。@Controller
标记的类表示这是一个控制器, Spring MVC 会将其识别为处理请求的组件,根据请求路径映射到相应的方法上。处理请求时,方法可以返回视图名称
,Spring MVC 会解析视图渲染成最终页面 -
@ResponseBody
:方法的返回值直接作为响应体返回给客户端,而不是通过视图解析器解析。 -
@RestController
:是@Controller
的特殊版本,组合了@Controller
、@ResponseBody
注解的功能,表示这是一个RESTful风格的控制器,其中方法都会以JSON或XML返回(直接写入响应体中),而不渲染视图 -
@RequestBody
:用于将 HTTP 请求的请求体(body)部分映射到方法的参数上,通常用于接收客户端发送的 JSON 或 XML 格式的数据,请求体为空或不符合指定的java类型,会报异常. -
@RequestParam
:用于从请求中获取参数值,并将其绑定到方法的参数上。它主要用于获取请求 URL 中的参数或表单数据。默认请求参数必须存在,否则会报异常。可以用required=false
允许参数缺失,并用defaultValue
来设置默认值.
Swagger相关的注解
-
@API(tags="xxx")
是Swagger(一个描述构建RESTful 的API工具)的注解,表示这API属于 xxx 这个模块下 -
@ApiOperation("xxxx2")
表示该方法的作用或功能是 "xxxx2"。这个描述会显示在 Swagger UI 生成的 API 文档中,让用户可以更容易地理解该方法的用途。 -
@ApiImplicitParams({ @ApiImplicitParam(name="path",value="文件路径",defaultValue="",required=true) @ApiImplicitParam(name="参数2",value="xxx",defaultValue="",required=true) })
@ApiImplicitParams
是 Swagger 中的注解,用于描述方法参数的详细信息。@ApiImplicitParam
则是用于描述单个方法参数的注解。在这个例子中,@ApiImplicitParams
注解包含了一个 @ApiImplicitParam
注解,该注解描述了一个名为 path
的方法参数。具体含义如下:
name="path"
:指定参数名为 path
。
value="文件路径"
:指定参数的描述信息为 "文件路径"。
defaultValue=""
:指定参数的默认值为空字符串。
required=true
:指定参数为必填参数,即调用该方法时必须提供 path
参数的值。
-
@PostMapping(value = "/abc",produces="application/json;charset=utf-8")
value
是请求路径produces
指定方法返回类型/相应类型是什么,这里返回类型是application/json
,且字符集为UTF-8编码。 -
@ApiModelProperty
注解属于 Swagger 库的一部分,主要用于生成 Swagger API 文档。它用于描述模型属性(即类的字段),可以提供字段的描述信息、示例值、是否必填等信息。
value
:字段的描述信息。
required
:是否为必填字段(默认值是 false)。
example
:字段的示例值。
hidden
:是否在文档中隐藏此字段(默认值是 false)。 -
@NotBlank
注解属于 javax.validation.constraints 包的一部分,用于验证字符串字段不能为空或空白(即不能为空字符串,不能全是空白字符)。这个注解通常用于表单提交、请求参数等需要校验的地方。 -
@Valid
注解用于在 Spring 应用中进行参数校验,通常与 JSR 303/JSR 380 Bean Validation API 结合使用。它可以自动触发校验逻辑,确保传递给方法的参数符合预定义的约束条件。如果参数不符合约束条件,Spring 会自动抛出异常。 -
HttpServletRequest
对象代表客户端的 HTTP 请求,可以通过该对象获取请求的各种信息,例如请求的 URL、请求参数、请求头等。在控制器方法中,可以使用HttpServletRequest
对象来获取客户端发送的数据,比如登录用户名和密码。 -
HttpServletResponse
对象代表服务器对客户端的 HTTP 响应,可以通过该对象设置响应的各种信息,例如响应的状态码、响应头、响应体等。在控制器方法中,可以使用HttpServletResponse
对象来向客户端发送数据,比如返回登录成功或失败的消息。