springboot入门及常用注解

目录

简单springboot应用创建

springboot目录结构

java 源代码目录

resources资源目录

springboot启动注解

@Scheduled注解


简单springboot应用创建

选择需要依赖的Starter,这里勾选了Web和Thymeleaf

springboot目录结构

java 源代码目录

  • controller:控制层
@Slf4j
@Api(tags = "User")
@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService UserService;

    @ApiOperation(value = "新建用户")
    @PostMapping("/user")
    public Result<Boolean> create(@ApiParam("参数描述") @Valid @RequestBody UserCreateVO vo) {
        //将vo转换为dto
        //调用业务层创建用户
    }
}

@slf4j:类上面添加@slf4j,可以使用log打印日志

@RestController = @Controller + @ResponseBody(以json格式返回结果)

@RequestMapping : 将Web请求与请求处理类中的方法进行映射

@GetMapping:相当于@RequestMapping(method=RequestMethod.Get)

@PostMapping:相当于@RequestMapping(method=HttpMethod.POST) 类似的还有@PutMapping,@DeleteMapping,@PatchMapping

 @RequestParam:接收普通参数,required—是否必须包含该参数,默认为true;defaultValue—设置默认参数值

@RequestBody:用于接收前端传递给后端的json字符串中的数据(请求体中的数据);在使用@RequestBody接收数据时,前端只能使用POST方式进行提交。

@PathVariable:用于接收请求路径中占位符的值

@API:使用在类上,表明是swagger资源,@API拥有两个属性:value、tags(生成的api文档会根据tags分类,value类似于tags,但不能有多个值)

@ApiOperation使用在方法上,表示一个http请求的操作,常用属性有value—方法描述,notes—提示内容,tags—重新分组(视情况而用)

@ApiParam使用在方法上或者参数上,字段说明;name–参数名,value–参数说明,required–是否必填

注:以上3个注解为swagger中的常见注解

@Valid:检验参数是否有效(@Valid常见注解见https://www.cnblogs.com/acm-bingzi/p/spring_valid.html)

/* 比如请求:
  public String login(@Valid User user) {...} /*

public class User {
    @NotBlank(message = "姓名不能为空")
    @Length(message = "姓名最长为20个字符", min = 1, max = 20)
    private String name;

    @NotBlank(message = "密码不能为空")
    @Length(message = "密码最少为8个字符,最长为30个字符", min = 8, max = 30)
    private String password;
}

@ControllerAdvice:@Component注解的一个延伸注解,Spring会自动扫描并检测被ControllerAdvice所标注的类。@ControllerAdvice需要和@ExceptionHandler、@InitBinder以及@ModelAttribbute注解搭配使用,主要是用来处理控制器所抛出的异常信息。首先,我们需要定义一个被@ControllerAdvice所标注的类,在该类中,定义一个用于处理异常的方法,并使用@ExceptionHandler进行标记。 

  • service:业务层

业务层主要负责业务逻辑应用设计。首先需要设计接口,然后再设计其实现该接口的类(impl包)。这样就可以在应用中调用service接口进行业务处理。service层业务实现,具体调用到已经定义的DAO的接口(对数据库的增删改查 ),封装service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性 。

详情见https://blog.csdn.net/Nibaby9/article/details/116715665

  • Dao(Data Access Object):数据存储对象

entity包:数据库对象的封装

mapper包:sql操作

@Data:实体类上的注解,@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集

注:如果需要使用父类的属性,在使用@Data时需同时加上@EqualsAndHashCode(callSuper=true)注解

@ApiModel():使用在类上,表示对类进行说明,value–表示对象名,description–描述

@ApiModelProperty():使用在方法或字段上,表示对model属性的说明或者数据操作更改,value–字段说明

  • pojo:普通javabeans

VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

resources资源目录

static包:静态资源目录,templates包:展现层页面目录,

application.properties : Spring Boot配置文件

application-local.yml : 数据库配置文件

springboot启动注解

@SpringBootApplication:SpringBoot的启动注解,相当于@SpringBootConfiguration,@EnableAutoConfiguration(开启spring应用程序的自动配置),@ComponentScan(扫描该类所在包及其子包)三个注解。

@Scheduled注解

定义定时任务,使用@Scheduled注解,cron表达式从左到右秒 分 时 日 月 年

@Component
public class CronJob {

    @Autowired
    private TimedTask timedTask;

    @Scheduled(cron = "0 0/1 * * * ?")
    public void processBy1min() {
        timedTask.process();
    }

}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值