StringBoot中经常用到的注解

97 阅读2分钟

前言:

持续更新记录平时自己在工作中经常用到的注解,如果有错误的地方敬请指正。

启动类:

SpringBootApplication

=@Configuration+@EnableAutoConfiguration+@ComponentScan

SpringBoot的核心注解,目的是开启自动配置

控制类:

@RestController

=@ResponseBody+@Controller

@ResponseBody:该方法的返回结果直接写入HTTP response body中

@Controller:用于定义控制器类 在spring项目中由控制器将URL请求转发到service层

@RequestMapping:

提供路由信息,负责URL到Controller中的具体函数的映射

示例:

export  function demo(query){
  return request({
    url: '/system/demo/functionDemo',
    method: 'get',
    params: query
  })
}
```js
```
```
@RestController
@RequestMapping("/system/demo")
public class demoController extends BaseController
{
```java
```
在前端调用demo方法就会通过url中的system/demo/functionDemo找到RequestMapping中路径为system/demo的控制类,然后寻找functionDemo方法`

@Autowired

自动导入依赖的bean

实例:

```
public class demoController extends BaseController
{
    @Autowired
    private demoService demoService;
```
```

@PreAuthorize

进入方法前的权限验证 使用这个方法需要的表达式

@PreAuthorize("hasAuthority('system:demo:delete')")//单个权限
@PreAuthorize("hasAnyAuthority('system:demo:delete,system:demo:edit')")//多个权限

@GetMapping @PostMapping

@GetMapping用于处理的请求是get

@RestController
@RequestMapping("/system/demo")
public class demoController extends BaseController
{
    @GetMapping("/functionDemo")
    public void functionDemo(){
    }
    
    通过观察之前的实例,可以看到在js的定义中,functionDemo确实是get类型的请求

@PathVariable

用来获取参数

示例:

// 通过公司id查询列表详情
export function getInfoByCompId(id) {
  return request({
    url: '/system/demo/getInfoByCompId/' + id,
    method: 'get'
  })
}
```js

@RestController
@RequestMapping("/system/demo")
public class demoController extends BaseController
{
        @GetMapping(value = "/getInfoByCompId/{id}")
        public AjaxResult getInfoByCompId(@PathVariable("id") Long id){
              returnAjaxResult.success(demoService.getInfoByCompId(id));
        }
 }

```java
通过PathVariable把js方法中的id拿过来,传入到getInfoByCompId方法中的Long类型的id上
然后调用之前导入的demoService的getInofoByCompId方法时将此id传入 完成通过公司id查询列表详情

实体类:

@Data

需要引入lombok 提供类所有属性的get set toString等方法

@NoArgsConstructor

注解在类上;为类提供一个无参的构造方法

@AllArgsConstructor

注解在类上;为类提供一个全参的构造方法

@Excel

用于导出excel文件时

@Excel(name = "会议记录",cellType= Excel.ColumnType.IMAGE,height = 50)
@Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")

服务实现类

@Service

一般用于修饰service层的组件

@Override

声明重写