Spring Boot 实战(1)

1.spring-boot-starter-web 

 1.1 @Controller与@RestController

  作用:通过WebApplicationContext自动注册bean让spring container管理。

  区别:它本身是由 @Controller 和 @ResponseBody 组成的元注解,表示一个controller的每个方法都继承了类型级的 @ResponseBody 注解,因此,直接写入响应体,而不是用HTML模板进行视图解析和渲染。

1.2 @RequestMapping与@GetMapping与@PostMapping等

  作用:将http请求映射到controller方法。还可以配置请求头,参数,cotent-type等属性。

1.3 @RequestParam、@RequestBody和Multipart

  作用:@RequestParam绑定get或post请求参数到指定注解。@RequsetBody序列化请求体绑定对于注解的对象。Mutipart接受带有 multipart/form-data 的POST请求的内容被解析并作为常规请求参数访问。

1.4 @ResponseBody

  作用:通过 HttpMessageConverter 将返回序列化为响应体。

2.spring boot-starter-validation

2.1 @Valid & @Validated

作用:标记一个属性,方法参数或方法返回值类型为验证传递。
区别:@Validated为变体支持spring自定义的约束。

3.spring-boot-starter-aop

3.1 @EnableAspectJutoProxy
作用:配置Spring AOP的自动代理
注意:无需使用,spring boot自动
3.2 @Aspect
作用:定义一个切面,会被Spring自动检测。
注意:切面之间不能成为advice的目录。
3.3 @Pointcut
作用:定义一个切入点。
注意:仅支持spring bean的切入。

3.4 @Befor、@After、@Aroud
作用:定义织入位置。

3.5 例子

复制代码
    /**
     * 定义切入点
     */
    @Pointcut("execution(* com.uaichong.app.controller.AccessTokenController.testRefresh2(..))")
    public void anyOldTransfer() {}

    /**
     * 注解匹配方式
     * @param joinPoint 切入点
     * @return Object
     */
    @Around("@annotation(com.*.app.annotation.Check)")
    public Object anyOldTransfer2(ProceedingJoinPoint joinPoint) throws Throwable {
        Object[] values = joinPoint.getArgs();
        System.out.println(joinPoint.getThis());
        System.out.println(joinPoint.getTarget());
        System.out.println(joinPoint.getSignature());
        System.out.println(joinPoint);
        for (Object o: values) {
            System.out.println(o);
        }
        System.out.println("this is check");
        return joinPoint.proceed();
    }

    /**
     * 指定point点
     */
    @Before("com.uaichong.app.aop.NotVeryUsefulAspect.anyOldTransfer()")
    public void testByTransfer() {
       System.out.println("pointcut is testing");
    }
View Code
复制代码

引用参考:
https://docs.spring.io/spring-boot/
https://springdoc.cn/docs/
https://beanvalidation.org/3.0/
https://hibernate.org/validator/
https://eclipse.dev/aspectj/doc/released/adk15notebook/index.html
https://dev.java/learn/

posted @   TongXiaLi  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示