SpringBoot注解分析
@EnableAutoConfiguration:声明这是一个SpringBoot声明的程序主类,这个注解是SpringBoot的注解
@ComponentScan("com.hfk.microboot") : 扫描器扫描com.hfk.microboot包下的所有程序类
这个是我com.hfk.microboot包下的程序类我现在去访问localhost:8080看到的结果如下:
下面我给大家介绍一个SpringBoot里面的一个非常重要的概念 : 子包的概念,子包在以往的SSM的开发过程中或许很陌生,但是对于SpringBoot来讲子包是一个非常重要的概念,意思就是说你所有的业务类必须要放到程序主类的子包下面这是我个人的一个强烈建议也是SpringBoot官方给出的建议,可能有人会问有要求不在子包的时候吗? 我告诉你有,在SpringCloud里面人家就要求你不能在子包,具体要怎么解决这个问题等咱们SpringBoot去结合SpringCloud的时候再去讲.
子包子包什么叫子包看图
我现在的Controller是不是在程序主类的子包下面
com.hfk.micro
com.hfk.micro.Controller
所以说你的业务类一定要放到程序主类的子包下面,别到时候扫描不到,你就看看你的业务类是不是正程序主类的子包下面
接着上一个话题两个注解
@EnableAutoConfiguration
@ComponentScan("com.hfk.microboot")
这两个注解是声明的是我现在的这个程序类是一个基于SpringBoot的程序类并且我要去扫描com.hfk.microboot下的所有的业务类,但是我们不能这样写也不是不能这样写,这样写是一个最笨的方法,下面大家来看一个注解:
@SpringBootApplication:
这个注解是SpringBoot的注解其实他是一个复合注解,这个注解代替了@EnableAutoConfiguration和@ComponentScan("com.hfk.microboot")有兴趣的可以点开这个注解的源码看看,这个注解的意思就是声明这个程序类是一个基于SpringBoot的程序主类然后自带开启子包扫描
再给大家介绍个注解:
@RestController
直接看图
在上图的代码中我们可以看到@Controller、@RequestMapping("/")、@ResponseBody这么几个注解,什么意思呢?学过Spring的都知道是什么意思@Controller控制器、@RequestMapping("/")映射地址、@ResponseBody以Rest风格返回一个josn串,在咱们大部分的开发中一般都是返回Rest风格,然后咱们每一个方法上面都要去加上@ResponseBody这个注解是不是很繁琐?你加上@ResponseBody他就给你返回Rest风格不加他就会认为你在控制台输出,为了解决这个繁琐的问题,SpringBoot官方给出了一个注解:
@RestController
具体看下图
在如上图中可以看到我并没有使用@ResponseBody这个注解去声明方法他也可以返回Rest风格,因为什么呢?因为用@RestController声明的类里面所有的方法都只能返回Rest风格,别的不能返,当然呢,等不需要返回Rest风格的时候可以再把@RestController换成@Controller