Spring Boot从入门到精通-初识注解、接口

作者 : 开心源码 本文共2174个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共189人阅读

在上一节中我们搭建了一个简单的Spring Boot项目。在这一节中我们来根据项目初步理解Spring Boot中常用的注解。

首先在启动类同级目录下新建controller目录,在controller目录中新建java类:DemoController.java

项目结构

在DemoController.java中我们利用注解实现一个简单的接口。

@RestControllerpublic class DemoController {   @GetMapping("/test")   public String test() {       return "test";   }}

可以看到在这个类中使用了两个注解,@RestController和 @GetMapping。
启动项目,在浏览器中输入:http://localhost:8080/test
可以看到浏览器中输出test字符。
接下来分析代码。
查看RestController的源码如下:

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@ResponseBodypublic @interface RestController {    @AliasFor(        annotation = Controller.class    )    String value() default "";}

从RestController 源码中可以看到RestController 注解了@Controller和@ResponseBody。因而这个接口可以返回数据。

关于更多的注解详解可以点击这里
查看GetMapping的源码如下:

@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@RequestMapping(    method = {RequestMethod.GET})public @interface GetMapping {...

从GetMapping 源码中可以看到注解了RequestMapping而且赋予了get类型。
也就是说@GetMapping的作用等同于@RequestMapping(method = {RequestMethod.GET})而且更加简洁。

在以往的spring项目中,单单注解了@Controller或者者@RestController加上@RequestMapping还不能真正意义上的说它就是SpringMVC 的一个控制器类,由于这个时候Spring 还不认识它。需要通过在xml中配置扫描包路径或者者在xml中单独配置这个java类,而在Spring Boot中完全免去了这一步。Spring Boot默认扫描启动类同级目录下的所有文件,所以在这里无需其余的xml配置直接即可以直接访问接口。

@SpringBootApplicationpublic class DemoApplication {    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}

在项目的启动类中,发现idea默认为我们加上了一个注解@SpringBootApplication,查看SpringBootApplication源码如下:

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(    excludeFilters = {@Filter(    type = FilterType.CUSTOM,    classes = {TypeExcludeFilter.class}), @Filter(    type = FilterType.CUSTOM,    classes = {AutoConfigurationExcludeFilter.class})})public @interface SpringBootApplication {...

我们先关注SpringBootApplication 上的@ComponentScan,这个注解就是指引项目启动之后spring扫描包的路径,假如你不希望spring在项目启动时扫描全局,那么可以在启动类中使用这个注解来配置spring的扫描路径。缩小扫描的范围可以缩短项目启动时间。

@SpringBootApplication@ComponentScan(basePackages={"com.example.demo.controller"})public class DemoApplication {    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}

在这一节中,我们理解到了少量Spring Boot常用的注解以及写了一个rest接口。在下一节中我们会将这个接口与数据库进行交互,实现一个简单的从浏览器到数据库之间完整的交互。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Spring Boot从入门到精通-初识注解、接口

发表回复