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 风格

相关文章
|
8月前
|
JSON 前端开发 Java
Spring 注解之@RestController与@Controller的区别
Spring 注解之@RestController与@Controller的区别
70 0
|
11月前
@ControllerAdvice注解
@ControllerAdvice注解
|
11月前
@PostMapping注解
@PostMapping注解
|
Java Spring
聊聊Spring中的@Autowired注解
今天来跟大家聊聊简单聊聊@Autowired,Autowired翻译过来为自动装配,也就是自动给Bean对象的属性赋值。
112 0
|
Java 编译器
关于@FunctionalInterface注解
FunctionalInterface
326 0
关于@FunctionalInterface注解
|
Java Spring 容器
为什么Spring不推荐使用@Autowired注解?
在实际工作中,使用IDEA开发时,很多码友都喜欢使用@Autowired注解进行依赖注入,这个时候 IDEA 就会报黄色警告,代码一片warning,代码洁癖的我不允许这么一个不明不白的警告在这里。@Autowired作为Spring的亲儿子,为啥在IDEA中提示了这么一个警告?所以,带着我的洁癖,和我的好奇心,开始研究起了这个警告。
1623 3
|
开发框架 Java Spring
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
220 0
Spring - 属性注入之注解(@Autowired、@Qualifier、@Resource)
|
XML Dubbo Java
duboo注解使用详解
当越来越的的接口与实现类的增加后,duboo的xml配置会越来越多,为了防止几百几千行的代码,减少开发人员配置xml的工作量,使用duboo的注解模式,减少配置多出问题多的可能性!
132 0
duboo注解使用详解
|
Java 程序员 开发工具
扒一扒@Retryable注解,很优雅,有点意思! (1)
扒一扒@Retryable注解,很优雅,有点意思! (1)
322 0
扒一扒@Retryable注解,很优雅,有点意思! (1)
|
安全 Oracle Java
扒一扒这个注解,我发现还有点意思。 (上)
扒一扒这个注解,我发现还有点意思。 (上)
107 0
扒一扒这个注解,我发现还有点意思。 (上)