欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot中controller解

程序员文章站 2022-07-12 20:31:38
...

springboot中controller的
两种返回值:
(返回页面,返回数据)
Controller标题
在web 项目中。
controller的返回值一般有两种方式:
1.返回对应的页面(例子:html.和jsp页面)
2.返回数据(json格式的数据)
可以通过@RequestBody返回json格式数据

@RequestBody使用如下:
springboot中controller解

Controller为什么这个注解可以返回页面?

1.在SpringMVC中,控制器Controller负责处理,由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成Model,然后再把Model返回给对应的View进行展示。在SpringMVC中提供了一个非常简便的定义Controller的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller标记方法之间的映射,这样的Controller就能被外界访问到。此外Controller不会直接依赖于HttpServletRequestHttpServletResponseHttpServlet对象,他们可以通过Controller的方法参数灵活的获取到。

RestController 注解内部详解

springboot中controller解

@Target:注解的作用:
        @Target(ElementType.TYPE)   //接口、类、枚举
        
        @Target(ElementType.FIELD) //字段、枚举的常量

        @Target(ElementType.METHOD) //方法

        @Target(ElementType.PARAMETER) //方法参数

        @Target(ElementType.CONSTRUCTOR)  //构造函数

        @Target(ElementType.LOCAL_VARIABLE)//局部变量

        @Target(ElementType.ANNOTATION_TYPE)//注解

        @Target(ElementType.PACKAGE) ///包   
@Retention可以用来修饰注解,是注解的注解,称为元注解。
Retention注解有一个属性value,是RetentionPolicy类型的,`
==RetentionPolicy.RUNTIME==
是一个枚举类型,
这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。
RetentionPolicy有3个值:==CLASS  RUNTIME   SOURCE==
按生命周期来划分可分为3类:
1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
这3个生命周期分别对应于:Java源文件(.java文件) ---> .class文件 ---> 内存中的字节码。
 1. @Document:说明该注解将被包含在javadoc中.
 2. @Deprecated,使用了注解为它的元素编译器将发出警告,
  因为注解@Deprecated是不赞成使用的代码,被弃用的代码。
@AliasFor是一个注解,用于为注解属性声明别名。

Conroller注解内部详解

springboot中controller解

Component可选属性:
1.输入属性:@Inputs()
  用来接收外部传入数据,使得父组件可以直接传数据给子组件;
2.提供器:providers
  用来做依赖注入;
3.生命周期钩子:Lifecycle Hooks
  组件从创建到销毁的过程中,可以有多个钩子触发;
4.样式表:styles
  提供组件专用样式;
5.动画:Animations
   方便创建与组件相关的动画效果,如入和出效果;
6.输出属性:@Outputs
   用来定义其他组件可能感兴趣的事件,和组件间共享数据。
@Component注解的扩展,
被@Repository注解的POJO类表示DAO层实现,
从而见到该注解就想到DAO层实现,
使用方式和@Component相同;
@Service 用于标注业务层组件,
@Controller 用于标注控制层组件,
@Repository 用于标注数据访问层组件。
@Component泛指组件,当组件不好归类时,可以使用这个注解进行标注。