一、基本注解
这些注解添加之后,基本就是一个标识。同时被纳入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”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。