主类注解
@SpringBootApplication:------包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;
@Configuration :等同于spring的XML配置文件;使用Java代码可以检查类型安全。
@EnableAutoConfiguration:------让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上;
@ComponentScan:-----组件扫描。个人理解相当于,如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean*;
控制层
@RequestMapping-----返回值通常解析为跳转路径,包含6个可选属性
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
value:指定请求的实际地址,指定的地址可以是URI Template 模式
method:指定请求的method类型, GET、POST、PUT、DELETE等
consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
@RestController-----无法返回jsp页面,配置的视图解InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。返回JSON,XML或自定义mediaType内容到页面,需要加上@ResponseBody注解。
前后端交互多为json字符串 ----推荐@RestController
@ResponseBody----表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api
@requestBody----可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。
@RequestParam:----用在方法的参数前面。相当于 request.getParameter();
@PathVariable:-----路径变量。如 RequestMapping(“user/get/mac/{macAddress}”) ;
public String getByMacAddress(
@PathVariable(“macAddress”) String macAddress){
//do something;
}
业务逻辑层
@Service:------用于标注业务层组件;
数据持久层
@Repository(value="userDao")------注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。
通用注解
@Component:-----泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注;
@AutoWired:-----byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作;当加上(required=false)时,就算找不到bean也不报错;
当service或dao类,存在多个接口需要实现时,可以搭配@Qualifier注解确定具体注入哪个,
也可以直接通过@Resource(name="xxx")也可以实现。
@Qualifier:-----当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用;(通俗一点说,就是一个类实现多个接口时,autowired不能确定具体是哪个,就加上这个注解,指定具体的名字)
@Resource(name=”name”,type=”type”):------没有括号内内容的话,默认byName。与@Autowired干类似的事;
@Bean:-----相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理;
@PostConstruct-----说明被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
@Column:-----如果字段名与列名相同,则可以省略;
@Id:----表示该属性为主键;
@Transient:-----表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
@Value:-----注入Spring boot application.properties配置的属性的值。
@NonNull ------注解在属性上,如果加了该注解,必须不能为Null