服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Spring框架学习常用注解汇总

Spring框架学习常用注解汇总

2022-02-13 14:43guoyp2126 Java教程

这篇文章主要为大家介绍了Spring框架学习中一些经常用的注解汇总及示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

类注解

@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 根目录,注解在方法上的是相对于类上的路径

?
1
2
3
4
5
6
7
@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的英文含义是合格者的意思,通过此注解,标注那个实现类才是这次要用到的实现类。如:

?
1
2
3
4
5
6
7
8
9
10
11
12
@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,要哪一个实现类,代码如下

?
1
2
3
@Autowired
@Qualifier("service")
EmployeeService employeeService;

此处是service,而不是service1。

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

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

等同于

?
1
2
3
4
5
6
7
@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注解绑定它传过来的值到方法的参数上,如:

?
1
2
3
4
5
6
7
8
@Controller
@RequestMapping("/user/{Id}")
public class DemoController {
  @RequestMapping("/pets/{petId}")
  public void queryPetByParam(@PathVariable String Id,@PathVariable String petId) {   
    // implementation
  }
}

以上就是Spring框架学习常用注解汇总的详细内容,更多关于Spring框架注解的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/guoyp2126/article/details/110221840

延伸 · 阅读

精彩推荐
  • Java教程分享40个Java多线程问题小结

    分享40个Java多线程问题小结

    多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级,本文给大家分享40个Java多线程问题小结 的相关资料...

    mrr3282020-03-12
  • Java教程一文带你掌握SpringCloud高可用服务注册中心Eureka

    一文带你掌握SpringCloud高可用服务注册中心Eureka

    Eureka是Netflix的子模块之一,也是一个核心的模块,Eureka 采用了 C-S(客户端/服务端)的设计架构,也就是 Eureka 由两个组件组成:Eureka 服务端和 Eureka 客户...

    动力节点12022021-04-29
  • Java教程java中ThreadLocal的应用场景实例分析

    java中ThreadLocal的应用场景实例分析

    在本篇文章里小编给大家整理的是一篇关于java中ThreadLocal的应用场景实例分析,对此有兴趣的朋友们可以学习参考下。...

    小妮浅浅5662021-08-08
  • Java教程RabbitMQ 还能做延迟队列?Nice!

    RabbitMQ 还能做延迟队列?Nice!

    在很多场景下,我们都有延迟队列的需求,然而默认情况下 RabbitMQ 并未提供延迟队列相关的功能,不过,在前面的文章中,松哥和大家分享了 RabbitMQ 中的...

    江南一点雨4692021-10-15
  • Java教程详解 Java静态代理

    详解 Java静态代理

    这篇文章主要介绍了 Java静态代理的相关资料,帮助大家更好的理解和学习Java代理的知识,感兴趣的朋友可以了解下...

    弗兰克的猫4222020-08-19
  • Java教程hibernate和mybatis对比分析

    hibernate和mybatis对比分析

    通过本文给分享了hibernate和mybatis对比分析,从开发对比,系统调优对比,对象管理与抓取策略,缓存机制对比等方面给大家详细介绍,需要的朋友参考下吧...

    动力节点5542021-01-03
  • Java教程Java中同步与并发用法分析

    Java中同步与并发用法分析

    这篇文章主要介绍了Java中同步与并发用法,较为详细的分析了java同步与并发所涉及的相关类与使用技巧,需要的朋友可以参考下 ...

    liuzx323202019-12-20
  • Java教程Java API如何实现向Hive批量导入数据

    Java API如何实现向Hive批量导入数据

    这篇文章主要介绍了Java API如何实现向Hive批量导入数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    盛装吾步7132021-10-19