SpringBootApplication 注解和 RestController 注解|学习笔记

简介: 快速学习 SpringBootApplication 注解和 RestController 注解

开发者学堂课程【SpringBoot 实战教程 SpringBootApplication 注解和 RestController 注解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10780


SpringBootApplication 注解和 RestController 注解


内容介绍:

一、定义

二、案例

 

一、定义

Controller 是实现具体功能的但是把启动方法写在 controller 里面虽然不影响正常的运行但是看起来不合理所以应该把启动方法放在单独的类中这个类就称为这个项目的启动类

 

二、案例

1、建立一个启动类放在别的包里面命名为 springapplications

2、把启动方法拷贝到启动类中需要注意启动类叫 springapplications要将之前的名字进行替换必须是启动方法所在类的类名的解码既然它作为启动类启动时需要做自动配置写入注解@EnableAutoConfiguration

@EnableAutoConfiguration

public class SpringApplications {

public static void main (String[] args)

{

SpringApplication. run (SpringApplications.class, args) ;

}

}

3、现在的 controller 跟 springmac 的 controller 一样虽然效果一样但是这样效果更清晰比如一个工程都单独建立一个含有启动方法的启动类启动 controller 是否可以正常访问没有报错输入localhost:8080/hello出现404页面找不到

image.png

4、springcontroller 没有实例化找不到 controller启动类和 controller 在不同的包下面所以启动类不知道 controller需要用注解 componentscan 进行扫描需要把 controller 包告诉启动类这样 springboot 在自动配置时会扫描到 controller同时对它进行实例化

@EnableAutoConfiguration

@ComponentScan ("com. qianfeng. controller")

5、重新启动访问页面回车这次就可以正常访问

image.png

6、把启动方法单独出来需要注意用 componentscan 注解指名 controller 所在的包

7、到现在为止在启动类上使用了两个注解一个是 EnableAutoConfiguration一个是 ComponentScan还有一个注解是组合注解可以替代它们两个这个注解是 springbootapplication被称为组合注解可以把两个注解注释掉这个功能是等价的它也需要告诉 controller 所在的包这个属性叫 scanbasepackages可以指名多个值它是增删数组类型

/ / @EnableAutoConfiguration

/ / @ComponentScan ("com. qianfeng. controller")

/ /默认情况下扫描的是当前包及当前包的子包

@SpringBootApplication (scanBasePackages={"com. qianfeng. controller"})

但是 controller 并没在当前包当前包是 com.qianfeng.appcontroller 在  com.qianfeng.controller 包下controller 包并不是 com.qianfeng.app 的子包所以没有扫描到如果 controller 在 com.qianfeng.app 的子包下那么就不用指定包名

8、重新启动正常访问实现了启动类和 controller 的分离

image.png

9、controller 经常会使用的注解是@ResponseBody

/ /返回的是 Restful 内容,不使用该注解会进行跳转

10、如果在 controller 里面再写两个功能这两个功能都是希望返回的是ResponseBody 内容并不希望进行跳转这时可以把 @controller 改成 @restcontroller好处是不需要在每个方法前面加 ResponseBody 注解它的效果和使用@ResponseBody效果是一样的但是相比较下简单一些

@RestController/ / 如果每个功能返回的都是 Restful 内容,那么可以使用该注解

public class SpringController {

@RequestMapping ("/hello")

/ /返回的是 Restful 内容,不使用该注解会进行跳转

/ /@ResponseBody

public String yes ()

{

Return"hello" ;

}

@RequestMapping("/ok")

/ / @ResponseBody

public String ok ()

{

Return"ok" ;

}

11、重新启动访问把 host 改成 ok可以看到 ok

image.png

12、springboot 支持 rest 风格返回一个值它不会进行跳转因为统一用的是@RestController这个跟使用 springmac 是一样的{msg}接收到的值赋给  msg,同样要使用注解 pathvariable注解的作用是把{msg}接收到的值赋给 msg。

/ / 支持 Rest 风格

@RequestMapping("/ info"/{msg}”)

public String show (@pathvariableString msg)

{

return" show"+msg;

}

13、重新启动输入localhost:8080/info/smile显示 showsmile

image.png

14、一个组合注解 @springbootapplication一个是不用在每个上面都加 responsebody 注解的 restcontroller 注解springboot 同样支持 rest 风格

相关文章
|
机器学习/深度学习 移动开发 分布式计算
DataNode启动失败问题解决
启动DataNode 提示Missing NameNode address
1746 0
DataNode启动失败问题解决
|
存储 分布式计算 资源调度
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
1528 6
|
Java 数据库连接 mybatis
mybatis报错:Type handler was null on parameter mapping or property ‘__frch_xxx_0’
mybatis报错:Type handler was null on parameter mapping or property ‘__frch_xxx_0’
2491 0
mybatis报错:Type handler was null on parameter mapping or property ‘__frch_xxx_0’
|
人工智能 供应链 监控
人力资源数智化正当时,何以引领企业跨越人才管理新高度?
人力资源数智化正当时,何以引领企业跨越人才管理新高度?
799 0
人力资源数智化正当时,何以引领企业跨越人才管理新高度?
|
人工智能 安全 搜索推荐
探索操作系统的未来发展:以人工智能为驱动力
【5月更文挑战第23天】随着科技的飞速发展,人工智能(AI)已经成为了当今社会的热门话题。在众多领域中,操作系统作为计算机系统的核心,其发展也受到了AI的影响。本文将探讨AI如何推动操作系统的发展,以及未来可能出现的新型操作系统特性。我们将重点关注AI在性能优化、安全性、用户体验等方面的应用,并展望操作系统在AI驱动下的未来趋势。
|
JSON Java API
Spring Boot 中的 @RestController 注解是什么,原理,如何使用
Spring Boot 中的 @RestController 注解是什么,原理,如何使用
|
前端开发 Java 微服务
SpringCloud微服务之间传输文件
SpringCloud微服务之间传输文件
454 1
|
负载均衡 Java Spring
Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
805 0
|
Kubernetes Cloud Native 调度
Kubernetes 批处理和HPC发展一览
Kubernetes 批处理和HPC发展一览