@RestController
此注解有两个目的。首先他是一个类似于@controller和@Service的构造型注解,能够让类被组件扫描功能发现。但是,与REST最相关在于@RestController会告诉Spring,控制器中所有的处理器方法的返回值都要直接写入响应体中,而不是将值放到模型中并传递给一个视图以便于渲染。
作为替代方案就是@Controller加上@ResponseBody 。
@RestController
public class Controller {
}
@ApiVersion(1)
指定版本号的注解,此时版本号为1
@ApiVersion(1)
public class ExamineeController {
}
@RequestMapping
是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。用于方法上则是对方法进行注解以产生访问的路径。
@RequestMapping("/test")
public class ExamineeController {
}
使用请求获取
@Autowired
是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
@Autowired
private ITestService testService;
@Log
自定义操作日志记录注解
@Log(value = "测试", businessType = BusinessType.INSERTORUPDATE)
public void test(){
}
@PreAuthorize
验证是否有权限
@PreAuthorize("hasAuthority('/test/save')")
public void test(){
}
@ApiImplicitParam
@ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header")})
sweeger作用在方法上,用于设置单个请求参数,用法示例
name :参数名。
value : 参数的具体意义,作用。
required : 参数是否必填。
dataType :参数的数据类型。
paramType :查询参数类型
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改。
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”。
@ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”。
@PostMapping和 @GetMapping
分别处理post 和get请求
value 请求路由地址
path 指定路由地址
params 指定request中必须包含某些参数值
headers 指定request中必须包含某些指定的header值
consumes 请求提交内容类型,MediaType方式,如 application/json、application/x-www-urlencode、multipart/form-data等
produces 请求返回的数据类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回,如application/json
@GetMapping("/test")
public ResultJson test(){
}
@PostMapping("/test1")
public ResultJson test1(){
}
@Builder
生成一个全属性的构造器
生成了一个返回静态内部类PersonBuilder对象的方法
生成了一个静态内部类PersonBuilder,这个静态内部类包含Person类的三个属性,无参构造器,三个方法名为属性名的方法,返回Person对象的build方法,输出静态内部类三个属性的toString()方法。
@Builder
public class Signature {
private String name;
}
@Data
相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。
@Data
public class Signature {
private String name;
}
@TableName
此注解主要是实现实体类型和数据库中的表实现映射。
@TableName("test")
public class Signature {
private String name;
}
@TableId(type = IdType.AUTO)
设置id生成策略,在哪个变量上面哪个就是id
@TableId(type = IdType.AUTO)
private Long id;
@Excel(name = “姓名”)
读取excel表格中的值所需的注解
@Excel(name = "姓名")
private String name;
@TableField()
该注解用于标识非主键的字段。将数据库列与 JavaBean 中的属性进行映射,fill为字段自动填充策略,默认为 FieldFill.DEFAULT
//自动填充策略
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
//在数据库不存在这个字段,业务中使用
@TableField(exist=false)
private LocalDateTime createTimeBegin;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern=“yyyy-MM-dd HH:mm:ss”)
@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。
//将时间格式化为中文时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@Param
@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值
int test(@Param("userId") int id);
mybatis中的写法
@Service
@Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
@Service
public class TestServiceImpl extends ServiceImpl<TestMapper, Test> implements ITestService {
}
@Override
@Override注解是伪代码,用于表示被标注的方法是一个重写方法。
@Override
public void test(){
}
@Slf4j
注解在类上;为类提供一个 属性名为log的Slf4j日志对像
@Component
标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean
@Component
public class GenConfig {
public String author;
}
@ConfigurationProperties(prefix = “gen”)
可以读取配置⽂件中的信息,并⾃动封装成实体类。
//配置信息在yml中
@ConfigurationProperties(prefix = "gen")
public class GenConfig {
/** 作者 */
@Value("${author}")
public String author;
}
@PropertySource(value = “classpath:gen.yml”)
Spring框架提供了PropertySource注解,目的是加载指定的属性文件
@PropertySource(value = "classpath:gen.yml")
public class GenConfig {
/** 作者 */
@Value("${author}")
public String author;
}
@SpringBootApplication
是Sprnig Boot项目的核心注解,目的是开启自动配置
@SpringBootApplication
public class NiuaApplication {
public static void main(String[] args) {
SpringApplication.run(NiuaApplication.class, args);
}
}
@Configuration
@Configuration注解和@Component一样可以创建对象;@Configuration注解还可以让@Bean对象依赖于当前配置类的其它Bean