springboot中controller解
程序员文章站
2022-07-12 20:31:38
...
springboot
中controller的
两种返回值:
(返回页面,返回数据)
Controller标题
在web 项目中。
controller的返回值一般有两种方式:
1.返回对应的页面(例子:html.和jsp页面)
2.返回数据(json格式的数据)
可以通过@RequestBody返回json格式数据
@RequestBody使用如下:
Controller为什么这个注解可以返回页面?
1.在SpringMVC
中,控制器Controller
负责处理,由DispatcherServlet
分发的请求,它把用户请求的数据经过业务处理层处理之后封装成Model
,然后再把Model
返回给对应的View
进行展示。在SpringMVC
中提供了一个非常简便的定义Controller
的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller
标记方法之间的映射,这样的Controller
就能被外界访问到。此外Controller
不会直接依赖于HttpServletRequest
和HttpServletResponse
等HttpServlet
对象,他们可以通过Controller
的方法参数灵活的获取到。
RestController 注解内部详解
@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注解内部详解
Component可选属性:
1.输入属性:@Inputs()
用来接收外部传入数据,使得父组件可以直接传数据给子组件;
2.提供器:providers
用来做依赖注入;
3.生命周期钩子:Lifecycle Hooks
组件从创建到销毁的过程中,可以有多个钩子触发;
4.样式表:styles
提供组件专用样式;
5.动画:Animations
方便创建与组件相关的动画效果,如入和出效果;
6.输出属性:@Outputs
用来定义其他组件可能感兴趣的事件,和组件间共享数据。
@Component注解的扩展,
被@Repository注解的POJO类表示DAO层实现,
从而见到该注解就想到DAO层实现,
使用方式和@Component相同;
@Service 用于标注业务层组件,
@Controller 用于标注控制层组件,
@Repository 用于标注数据访问层组件。
@Component泛指组件,当组件不好归类时,可以使用这个注解进行标注。
推荐阅读
-
ASP.NET实现MVC中获取当前URL、controller及action的方法
-
eclipse springboot工程打war包方法及再Tomcat中运行的方法
-
qq邮箱绑定怎么解除? QQ邮箱中关联邮箱的解绑教程
-
基于Angular中ng-controller父子级嵌套的相关属性详解
-
详解SpringBoot获得Maven-pom中版本号和编译时间戳
-
SpringBoot中对LocalDateTime进行格式化
-
SpringBoot中的五种对静态资源的映射规则
-
Springboot 中AOP的使用
-
springboot中实现kafa指定offset消费
-
SpringBoot中神奇的@Enable*注解?