首页 > 编程语言 >Java Web开发阶段注解

Java Web开发阶段注解

时间:2023-12-15 18:23:48浏览次数:37  
标签:Web Java 可以 用于 Result 注解 参数 方法 开发阶段

@Component

标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean

通过路径扫描来自动侦测以及自动装配到Spring容器中

@Controller

用于指示Spring类的实例是一个控制器,相对于实现Controller接口更加简单,使用Controller注解可以同时处理多个请求动作,更加灵活

使用@Controller标记一个类,使用他标记的类就是一个控制器类,Spring使用扫描机制查找应用程序中所有基于注解的控制器类,分发处理器会继续扫描使用了该注解的类的方法是, 并检测该方法是否使用了@RequestMapping注解的方法才是真正处理请求的处理器

@Service

@Service注解在类上,标记当前类是一个service类

加上该注解会将当前类自动注入spring容器中

@Repository

属于是Spring的注解,它用来标注访问层(dao层),它表示一个仓库,主要用于封装对于数据库的访问

@RestController

首先RestController注解相当于 @ResponseBody 和 @Controller 的结合

用于标注一个控制器类,返回的结果直接作为HTTP响应的内容,会自动将返回值转换为JSON或XML格式

@Autowired

可以对类成员变量,方法,构造函数进行标注,让spring完成bean自动装配的工作

使用@Autowired标注一个接口,会自动加载接口的实现类

注意:如果标注的接口有多个实现类,我们可以使用@Qualifier("beanld")标签将bean的ID作为参数使用,加载特定的类

@Resource

该注解和@Autowired注解都是用来实现依赖注入的,它可以根据名称来注入对应的Bean,可以通过指定name属性来指定要注入的Bean的名称

@Qualifier

限定描述符除了能根据名字进行注入,更能进行更细粒度的控制

可以指定bean作为参数使用,加载特定的类

@Primary

当有多个相同类型的bean时,使用@primarily来赋予bean更高的优先级

如果没有指定具体的Bean名成或者@Qualifier注解时,spring就会选择被@Primary注解标注的Bean注入

@Value

是Spring框架中的一个注解,用于将属性值注入到Bean的字段、构造方法参数、Setter方法或普通方法上。可以通过@Value注解直接指定属性的值

@ConfigurationProperties

属性配置的注解,与@Value注解相比,它更适用于批量注入属性。它可以将配置文件中的属性值批量注入到一个带有相同前缀的POJO(Plain Old Java Object)类中。

@RequestMapping

将HTTP请求映射到控制器方法上,@RequestMapping表示共享映射,如果没有指定请求方式,将接收GET,POST等等其他所有的HTTP请求方式

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping

分别对应具体的HTTP请求方式的映射注解,都是HTTP方法特有的快捷方式@RquestMapping的变体

@RequestParam

将请求参数绑定到你控制器的方法参数上,可以指定参数的名称,是否必须,默认值等

    @GetMapping
    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "5")  Integer pageSize,
                       Integer gender,String phone
                       ){
PageBean pageBean = customerService.page(page,pageSize,gender,phone);
return Result.success(pageBean);
    }

@PathVariable

用于将请求路径中的占位符参数绑定到方法的参数中

/**
     * 根据id查询信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public Result getByid(@PathVariable Integer id){
Customer customer= customerService.getByid(id);
return Result.success(customer);
}

@RequestBody

用于将请求体的内容绑定到方法的参数上,可以将请求体的JSON格式数据转化为Java对象

/**
 * 修改客户
 */
@PutMapping
public Result update(@RequestBody Customer customer){
customerService.update(customer);
return Result.success();
}

@ResponseBody

用于将方法的返回值直接以响应体的形式返回给客户端,可以将Java对象转化为JSON格式数据

@DateTimeFormat

一个用于日期时间格式化的注解,属于Spring框架中的注解,它可以应用于类的字段或方法的参数上,用于指定日期时间的格式。

在接收请求参数时,可以将字符串类型的日期时间转换为Java中的Date类型或其他日期时间类型

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate begin;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate end;

@RestControllerAdvice

@RestControllerAdvice是一个组合注解,用于定义全局异常处理器和全局数据绑定器。

它结合了@ControllerAdvice和@ResponseBody两个注解的功能

用于统一处理控制器(Controller)中的异常,并返回自定义的响应数据

@ExceptionHandler

@ExceptionHandler是一个单独的注解,用于在控制器(Controller)中定义局部异常处理方法。通过在特定的方法上添加该注解,可以捕获指定类型的异常,并进行相应的处理操作,例如返回特定的错误信息或执行其他业务逻辑

@Transactional

它可以应用于类级别或方法级别

  • 类:@Transactional注解时,表示该类的所有公共方法都将被包装在一个事务中
  • 方法:在方法级别上使用@Transactional注解时,表示该方法将被包装在一个独立的事务中

@Mapper

用来标记时Mapper层,用于表示接口或类为MyBatis的映射器(Mapper),通过在接口或类上添加@Mapper注解,可以告诉MyBatis框架将其作为映射器进行处理,从而可以在该接口或类中定义数据库操作的方法

  • @Insert 插入操作

  • @Update 修改操作

  • @Delete 删除操作

  • @Select 查询操作

以上四种注释都是在映射器接口的方法上定义的数据库操作

@Options

注解用于配置数据库操作的一些选项,例如设置主键自动生成、设置是否使用缓存等。通过在方法上添加@Options注解,并指定相应的选项,可以对数据库操作进行一些额外的配置

@Results

@Results注解用于定义多个@Result注解,它可以在一个地方集中定义多个映射关系。可以将@Results注解应用于查询语句的@Select、@Insert、@Update或@Delete注解上

@Result

@Result注解用于定义单个映射关系,它主要用于将查询结果集中的字段与Java对象的属性之间进行一一映射。可以将@Result注解应用于查询语句的@Select、@Insert、@Update或@Delete注解上,也可以将其应用于@Results注解中

Lombok库

@Data

可以自动生成类中的所有基本方法,包括getter,seter,toString,equals和hasCode等

@Getter

可以自动生成类中的getter方法

@Setter

可以自动生成类中的setter方法

@NoArgsConstructor

可以自动生成类中的无参构造方法

@AllArgsConstructor

可以自动生成类中的包含所有参数的构造方法

@Slf4j

可以自动生成一个名为log的静态日志记录器,用于在代码中进行日志输出

测试注解

@Test

用于标记测试方法,表示该方法是一个测试方法

@BeforeAll

用于标记在所有测试方法执行之前需要执行的方法

@AfterAll

用于标记在所有测试方法执行之后需要执行的方法

@BeforeEach

用于标记在每个测试方法执行之前需要执行的方法

@AfterEach

用于标记在每个测试方法执行之后需要执行的方法

@ParameterizedTest

用于标记参数化测试方法,可以使用不同的参数多次执行同一个测试方法

@ValueSource

用于提供基本类型或字符串类型的参数值,用于参数化测试

@CsvSource

用于提供CSV格式的参数值,用于参数化测试

标签:Web,Java,可以,用于,Result,注解,参数,方法,开发阶段
From: https://www.cnblogs.com/yifan0820/p/17903958.html

相关文章

  • SuperMap iClient3D for WebGL/WebGPU
    主要介绍SuperMapiClient3DforWebGL/WebGPU的入门用法,详细的接口参数请参考API页面。准备获取SuperMapiClient3DforWebGL/WebGPU开发时需要引入SuperMapiClient3DforWebGL/WebGPU。其中包括必备的CSS文件和JS文件。你可以通过以下几种方式获取:SuperMapiCl......
  • 无涯教程-Java - String Buffer & String Builder函数
    StringBuffer和StringBuilder类在需要对字符串进行大量修改时使用。与字符串不同,可以不停地修改StringBuffer和Stringbuilder类型的对象,而不会留下很多新的未使用对象。StringBuilder类是从Java5开始引入的,StringBuffer和StringBuilder之间的主要区别是StringBuilders......
  • java方法的定义与执行
    java中的方法在类中定义。定义方法格式:访问修饰符  返回值类型  方法名(参数列表){  ... 执行内容 ...  return返回值;}访问修饰符:表示方法在哪里能被访问到返回值类型:表示方法返回的数据的类型,如果没有返回值,就用void参数:可选的publicclassTest8{......
  • 秦疆的Java课程笔记:72 面向对象 instanceof和类型转换
    instanceof关键字,用于判断左边的实例对象是否是右边的类的实例。先创建4个类,父类Person,其子类Student和Teacher,测试类Application。在Application中测试instanceof语句://父类publicclassPerson{}//子类publicclassTeacherextendsPerson{}//子类publicclassStud......
  • 秦疆的Java课程笔记:71 面向对象 什么是多态
    多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。(指向父类或者有关系的类。)//父类=======================================publicclassPerson{}//子类=================================......
  • 《Java编程思想第四版》学习笔记47--关于handleEvent
    (4)增加可以被handleEvent()方法测试事件的组件到练习3中。过载handleEvent()并在文字字段中为每个组件显示特定的消息。                                                ......
  • 无涯教程-Java - toUpperCase()函数
    该方法返回指定的char值的大写形式。toUpperCase()-语法chartoUpperCase(charch)这是参数的详细信息-ch  - 原始字符类型。toUpperCase()-返回值此方法返回指定的char值的大写形式。toUpperCase()-示例publicclassTest{publicstaticvoidmain(Str......
  • javaweb实现文件上传与下载功能
    本文实例为大家分享了javaweb文件的上传与下载,供大家参考,具体内容如下一、文件上传要实现Web开发的上传功能,通常需要完成两步操作:一是在Web页面中添加上传输入项;二是在Servlet中读取上传文件的数据,并保存到本地硬盘中。上传大多数情况是通过表单的形式提交给服务器,使用<inputt......
  • 记录一次在k8s上,web服务内嵌的netty-socketio注册到nacos,gateway转发路由 遇到的问题
    web服务内嵌的nacos怎么注册?使用javasdk方式参考链接:https://nacos.io/zh-cn/docs/sdk.html每个socket不同怎么设置端口我这里使用的是注解,让用户传过来,并且在bean初始化之前进行变量存储。这个链接里面的[netty-socketio服务端代码编写目录]:https://www.cnblogs.com/x......
  • android webview加载assets目录中的html
     加载目录:Stringurl="file:///android_asset/web/index.html";webView.loadUrl(url);完整代码:packagecom.example.h5application;importandroidx.appcompat.app.AppCompatActivity;importandroid.app.AlertDialog;importandroid.app.ProgressDialog;......