Spring-boot 一些常用注解说明!

@SpringBootApplication

这个注解就是下面这一堆注解的组合,其中又一个注解就是ComponentScan,这个注解的作用是扫描及注入对应的bean。而默认的扫描路径是由@SpringBootApplication注释的类决定的。

比如一个Application.class的路径是com.xxx.web 那么ComponentScan扫描的路径就是com.xxx.web.*,所以Application.class这个文件的位置至关重要,它的位置关系着扫描路径,如果在com.xxx.service

中写了一个controller的话 那么该controller无法被扫描到,也就无法产生作用。

当然也可以手动定义地址,在Application.class中手动的在@SpringBootApplication注解下面加上@ComponentScan(basePackages={com.xxx.*})手动的配置需要扫描的地址也行。

个人偏向将Applicatio放在最外层的目录下,那么就能扫描到所有同级及子目录的文件了!!!

@Target({ java.lang.annotation.ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
        @org.springframework.context.annotation.ComponentScan.Filter(type = org.springframework.context.annotation.FilterType.CUSTOM, classes = {
                org.springframework.boot.context.TypeExcludeFilter.class }),
        @org.springframework.context.annotation.ComponentScan.Filter(type = org.springframework.context.annotation.FilterType.CUSTOM, classes = {
                AutoConfigurationExcludeFilter.class }) })

 

@RestController(作用范围·类):

 它是@Controller+@ResponseBody 注解的组合,它的好处在于当你的Controller中只是想返回json,或者对应的数据到前端页面时,直接用该注解标注整个类,那么就没必要在每个RequestMapping方法上都逐一再加一个ResponseBody注解了。

 但是它还有一个缺点,就是当你的Controller想返回一个具体页面时,比如return index.html 或者index.jsp, 那么使用RestController注解就会导致InternalResourceViewResolver视图解析的失效。即没办法返回到正确的页面,只能返回一个字符串index.jsp给页面。

   所以@RestController和@Controller这2个注解没有谁好谁坏,如果项目是前后端分离,那么整个项目就可以使用@RestController来实现,如果项目包含前端资源的解析那么 要选择性的使用2种注解!

 

@Value

该注解就是在项目启动的时候,将属性的值从application.properties(这个是系统默认的properties文件)中注入到对应的属性上。以@value("${xxx.xxx.xx}")这样的方式!

如果想自己定义properties文件的话就需要用到@PropertySource(value="classpath:xxx.properties",encoding="utf-8")来配置额外的文件。

 

@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法,说特别也没有很特别,可能有些人对一个类中大量的set,get方法不感冒的时候就可以用这个注解减少

代码量!!!!

@NoArgsConstructor : 生成一个无参数的构造方法。
@AllArgsContructor: 会生成一个包含所有变量,同时如果变量使用了NotNull 注释, 会进行是否为空的校验。

 

posted @ 2018-04-04 15:10  粗鲁师太  阅读(159)  评论(0编辑  收藏  举报