一、基本注解

这些注解添加之后,基本就是一个标识。同时被纳入spring的Bean管理。

@Service: 注解在类上,表示这是一个业务层bean。默认名称是类名(头字母小写),可以指定。

@Service("baseCacheService")
public class BaseCacheServiceImpl implements BaseCacheService{
}

@Service 
public class ShortUrlServiceImpl implements ShortUrlService {
}

@Controller:注解在类上,表示这是一个控制层bean。

使用@Controller修饰类,

可以根据需要返回各种我们所需的数据(json(方法上使用@ResponseBody),ModelAndView,静态页面),

而使用@RestController修饰类,

最后返回结果都会被解析成json字符串,适合所有的方法返回值都是json数据

可以归结成一个等式

@RestController = @Controller + @ResponseBody

@Repository: 注解在类上,表示这是一个数据访问层bean。

@Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写。

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注,标识为一个Bean。
比如,把普通pojo实例化到spring容器中,就可以用这个标记。

@Autowired:按类型注入.默认属性required= true

@Resource: 按名称装配。

@Resource和@Autowired注解都是用来实现依赖注入的。
只是@AutoWried按by type自动注入,
而@Resource默认按byName自动注入。

二、启动注解

@SpringBootApplication:包含了@ComponentScan、@Configuration、@EnableAutoConfiguration。
@ComponentScan:让spring Boot扫描到Configuration类并把它加入到程序上下文。
@SpringBootConfiguration :等同于spring的XML配置文件;使用Java代码可以检查类型安全。
@EnableAutoConfiguration :自动配置。

三、HTTP注解

@RequestBody:HTTP请求获取请求体(处理复杂数据,比如JSON)
@RequestHeader:HTTP请求获取请求头
@CookieValue:HTTP请求获取cookie
@SessionAttribute:HTTP请求获取会话
@RequestAttribute:HTTP请求获取请求的Attribute中(比如过滤器和拦截器手动设置的一些临时数据),
@RequestParam:HTTP请求获取请求参数(处理简单数据,键值对),
@PathVariable:HTTP请求获取路径片段,
@MatrixAttribute:HTTP请求获取矩阵变量允许我们采用特殊的规则在URL路径后加参数(分号区分不同参数,逗号为参数增加多个值)

四、其他注解

@Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。
@ConfigurationProperties:给对象赋值,将注解转换成对象。
@RequestMapping:和请求报文是做对应的
@EnableCaching:注解驱动的缓存管理功能
@GeneratedValue:用于标注主键的生成策略,通过 strategy 属性指定
@JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。
@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。