Spring框架学习常用注解汇总

作者:guoyp2126 时间:2023-11-10 17:38:53 

类注解

@component 标注类,泛指各种组件,类不属于各种分类的时候,用它做标注。
@Service 标注类,声明该类为业务层组件,用于处理业务逻辑

@Repositor 标注类,声明该类为持久层的接口。使用后,在启动主程序类上需要添加@MapperScan(“xxx.xxx.xxx.mapper”)注解
@Mapper 标注类,用在持久层的接口上,注解使用后相当于@Reponsitory加@MapperScan注解,会自动进行配置加载

@Configuration Spring3.0以上,声明该类是一个配置类,可以使用@Configuration用于定义配置类,可替换xml配置文件。被注解的类内部包含有一个或多个被@Bean注解的方法。

@Aspect 标注类 声明这个类是一个切面类

@Controller 标注类,声明该类为Spring MVC controller处理器组件,用于创建处理http请求的对象。
@RestController 标注类,声明该类为Rest风格控制器组件,该注解是Spring4之后加入的注解,用它替代@Controller就不需要再配置@ResponseBody,默认返回json格式

@RequestMapping:既可以注解在类上,也可以注解在类的方法上,该类提供初步的请求映射信息。注解在类上是相对于 Web 根目录,注解在方法上的是相对于类上的路径


@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/login")
public String login() {
return "success";
}

此时,调用时使用:http://IP地址:端口号/网站根路径/user/login

方法或属性上注解

@Autowired 用来装配bean,可以写在字段或者方法上。默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false)
@Qualifier 如果一个接口有两个或者两个以上的实现类,就要使用到@Qualifier注解,qualifier的英文含义是合格者的意思,通过此注解,标注那个实现类才是这次要用到的实现类。如:


@Service("service")
public class EmployeeServiceImpl implements EmployeeService {
   public EmployeeDto getEmployeeById(Long id) {
       return new EmployeeDto();
   }
}
@Service("service1")
public class EmployeeServiceImpl1 implements EmployeeService {
   public EmployeeDto getEmployeeById(Long id) {
       return new EmployeeDto();
   }
}

service和service1同时实现接口EmployeeService,@Autowired注入时,通过@Qualifier告诉spring,要哪一个实现类,代码如下


@Autowired
@Qualifier("service")
EmployeeService employeeService;

此处是service,而不是service1。

@Bean 与@Configuration标注类配合使用,等同于xml文件配置的bean。如:


<bean id="user" class="com.zhang.bean.User">
    <property name="userName" value="zhangsan"></property>
    <property name="age" value="26"></property>
</bean>

等同于


@Bean
   public User getUser(){
       User user = new User();
       user.setUserName("zhangsan"),
       user.setAge(26),
       return user;
   }

@After、@Before、@Around:与@Aspect配合使用,直接将切点作为参数,在方法执行之后执行、之前执行及之前和之后均执行。
@RequestBody:可用在方法上,也可以用在参数上。注解在方法上,代表用户返回json数据,而不是页面。

参数注解

@RequestBody:注解在方法的参数上,代表接收的参数是来自requestBody中,即请求体。用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,如:application/json、application/xml等类型的数据,使用注解@RequestBody可以将body里面所有的json数据传到后端,后端再进行解析

@RequestParam:使用在方法参数参数上,接收的参数是来自HTTP请求体或请求url的QueryString中。可以接受简单类型的属性,也可以接受对象类型。@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。

@PathVariable: 使用在方法参数参数上。当@RequestMapping URI template 样式映射时, paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上,如:


@Controller
@RequestMapping("/user/{Id}")
public class DemoController {
 @RequestMapping("/pets/{petId}")
 public void queryPetByParam(@PathVariable String Id,@PathVariable String petId) {    
   // implementation
 }
}

来源:https://blog.csdn.net/guoyp2126/article/details/110221840

标签:Spring,框架,注解
0
投稿

猜你喜欢

  • Android Studio自动提取控件Style样式教程

    2022-01-29 14:09:55
  • Spring boot2X负载均衡和反向代理实现过程解析

    2023-02-06 04:18:53
  • Java实现一个顺序表的完整代码

    2023-09-21 01:00:59
  • Android Studio 透明状态栏的实现示例

    2022-12-06 21:44:23
  • Idea servlet映射方法优缺点对比

    2023-06-12 23:59:34
  • Java获取e.printStackTrace()打印的信息方式

    2022-05-18 05:19:26
  • Kotlin使用协程实现高效并发程序流程详解

    2021-12-27 20:47:21
  • C#使用oledb操作excel文件的方法

    2023-06-13 19:19:42
  • Spring Boot应用程序同时支持HTTP和HTTPS协议的实现方法

    2022-01-10 16:50:43
  • RabbitMQ延迟队列及消息延迟推送实现详解

    2023-11-15 15:31:31
  • 详谈OnTouchListener与OnGestureListener的区别

    2023-11-13 14:21:24
  • C#中4种深拷贝方法介绍

    2023-01-02 21:16:11
  • c#关于JWT跨域身份验证的实现代码

    2023-09-12 18:26:02
  • Java 中 String,StringBuffer 和 StringBuilder 的区别及用法

    2023-08-22 16:40:57
  • 详解Android 进程

    2023-04-26 07:37:55
  • Android实现简洁的APP更新dialog数字进度条

    2023-01-29 18:53:39
  • C语言 简单粗暴的笨方法找水仙花数

    2023-11-27 21:53:29
  • C# winform分页查询的实现示例

    2021-12-25 04:56:12
  • C#调用SQLite的方法实例分析

    2022-09-25 06:02:22
  • C#实现Array添加扩展实例

    2023-02-16 23:01:03
  • asp之家 软件编程 m.aspxhome.com