1. @SpringBootApplication :启动类。项目启动的入口(默认必须在最外层目录)
  2. @ComponentScan : 配置扫描路径
  3. @Configuration :配置spring容器(应用上下文)
  4. @EnableAutoConfiguration :启用自动配置
  5. @Value:基本属性值注入
  6. @PropertySource:自定义配置文件
  7. @Component/@ConfigurationProperties(prefix = “”):对象值注入
  8. @Mapper:添加了@Mapper注解之后这个接口在编译时会生成相应的实现类。
    会自动的把 @Mapper 注解的接口生成动态代理类.
  9. @RestController:将类注入到spring的IOC容器中,类中接口返回的数据(除了String)以JSON返回
  10. @PostMapping / @GetMapping:替换了@RequestMapping中的method = RequestMethod.POST/GET
  11. @reference 是 dubbo 的注解,用于消费端,表明使用提供端的某种服务。
  12. @EnableDubboConfiguration:启动类加,@EnableDubboConfiguration在生产端和消费端都加上此注解来表示使用dubbo服务

@RestController

@RestController包含@Controller和@ResponseBody

@RestController和@Controller的区别是 RestController的方法不能返回到jsp页面
@ResponseBody 的作用就是将java对象转成json格式的数据

@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端,本人尝试了一下,如果返回的是String类型,则仍然是String。

@RestController
@RequestMapping("test")
public class SampleController {

    @GetMapping
    public Map testGet() {
        return new HashMap<String, String>(){{
           put("name", "springboot");
        }};
    }

    @GetMapping(path = "str")
    public String testGetStr() {
        return "OK";
    }
}

这部分代码对于Map返回则是JSON String,对于String则仍然是String

@ConfigurationProperties

可以将外部配置文件(比如applicaition.properties)加载进来,填充对象的对应字段的数据,然后供其他Bean使用。
prefix 前缀定义了哪些外部属性将绑定到类的字段上.

@Mapper和@MapperScan

@Mapper 一般我们用在接口上,使用 @Mapper,最终 Mybatis 会有一个拦截器,会自动的把 @Mapper 注解的接口生成动态代理类。代码如下:

@Mapper
public interface UserDAO {
    @Select("select * from user where name = #{name}")
    User find(String name);
    @Select("select * from user where name = #{name} and pwd = #{pwd}")
    /**
      * 对于多个参数来说,每个参数之前都要加上@Param注解,
      * 要不然会找不到对应的参数进而报错
      */
    User login(@Param("name")String name, @Param("pwd")String pwd);
}

@Mapper 注解针对的是一个一个的类,相当于是一个一个 Mapper.xml 文件。
而一个接口一个接口的使用 @Mapper,太麻烦了,于是 @MapperScan 就应用而生了。
@MapperScan 配置一个或多个包路径,自动的扫描这些包路径下的类,自动的为它们生成代理类。

@SpringBootApplication  
@MapperScan({"com.xttblog.mapper","com.xttblog.dao"})
public class XttblogApp {  
    public static void main(String[] args) {  
       SpringApplication.run(XttblogApp.class, args);  
    }  
}


使用@MapperScan注解
通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:
(模糊匹配)
@SpringBootApplication
@MapperScan(“com.kfit.*.mapper”)
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }
}

更多推荐

springboot常用注解精简总结&@Mapper@MapperScan的区别和用法