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
猜你喜欢
- Jackson解析嵌套类(MismatchedInputException)具体报错如下问题描述:Jackson解析嵌套类问题 调
- 声明:下面的实例全部在linux下尝试,window下未尝试。有兴趣者可以试一下。文章针c初学者。c语言的强符号和弱符号是c初学者经常容易犯
- Java常用类库Math类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数一、Field SummaryModi
- 前言本文将带您了解在 Flutter 中制作翻转卡片动画的两个完整示例。第一个示例从头开始实现,第二个示例使用第三方包。闲话少说,让我们动手
- SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果。下面是截图一、简介 SlidingDr
- [LeetCode] 205. Isomorphic Strings 同构字符串Given two strings s
- 实验目的在C#和Rest/Restful以及其它的Web服务交互过程中,大量使用到JSON传递数据,如何快捷的转化C#对象到JSON和转化J
- 背景最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上
- Android中获取资源 id 及资源 id 的动态获取我们平时获取资源是通过 findViewById 方法进行的,比如我们常
- 你是否受够了每次修改静态文件都要重启服务器?有时候在一些公司前后端的职责没有那么的明确,往往后台人员也要去写一些页面,像jsp页面,或者其他
- 已经有很多关于 Flutter WebView 的文章了,为什么还要写一篇。两个原因:Flutter WebView 是 Flutter 开
- 在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作。然而在Java中除了提供LockAPI外还在语
- 前言本文主要给大家介绍的是关于Java对xls文件进行读写操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:wi
- 要想实现android手机通过扫描名片,得到名片信息,可以使用脉可寻提供的第三方SDK,即Maketion ScanCard SDK,脉可寻
- 自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱:很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密
- 概念理解Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都
- 在项目迁移到Spring Boot之后,发生内存使用量过高的问题。本文介绍了整个排查过程以及使用到的工具,也非常适用于其他堆外内存排查。背景
- ViewDragHelper是support.v4下提供的用于处理拖拽滑动的辅助类,查看Android的DrawerLayout源码,可以发
- 1.需求背景需要实现一个动态加载但不显示出来的视图,且该视图上有个动态生成的二维码,最后用其去生成一张快照(也就是图片)。(常见这种情况是来
- 引语:工作中有时候需要在普通的对象中去调用spring管理的对象,但是在普通的java对象直接使用@Autowired或者@Resource