@SpringBootApplication
@Target注解:元注解之一,描述注解的使用范围。
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention注解:元注解之一,表示注解可存活的时间
SOURCE:注解只保留在源文件,当Java文件编译成class文件注解被遗弃,被编译器hulve
CLASS:注解被保留在class文件,jvm加载class文件时被遗弃
RUNTIME:注解被保存在class文件中,jvm加载class文件之后,任然存在
@Documented注解:元注解之一,指明修饰的注解,只负责标记
@Inherited注解:元注解之一,如果注解在类上,子类自动继承此注解,使用@Inherited声明的注解,只有在类上使用时才有效,对方法属性无效。
@SpringBootConfiguration注解:对@Configuration注解的简单封装,用于定义配置类,可用于替换xml配置文件,被注解的类内部由一个或多个@Bean时,这些方法将被AnnotationConfigApplicationContext或者AnnotationConfigWebApplicationContext类进行扫描,用于构建bean,初始化容器
@EnableAutoConfiguration注解:开启自动配置,自动加载项目中pom.xml文件中引入的依赖项
@ComponentScan注解:用于自动扫描指定包下的所有组件,并将扫描的组件加入到容器中,常见用法为@ComponentScan(basePackages="包名"),扫描包名下的所有组件。
@ImportResource注解:导入spring的配置文件,使spring的配置文件生效,@ImportResource(locations = {"classpath:beans.xml"}),配置类的组合主要发生在跨模块或跨包的配置类引用过程中。
@MapperScan注解:作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类 添加位置:是在Springboot启动类上面添加,例如:@MapperScan(value="com.XXX.XXX.dao.mysql")
@EnableAsync注解:EnableAsync注解的意思是可以异步执行,就是开启多线程的意思。可以标注在方法、类上。
@EnableScheduling注解:通过@EnableScheduling注解开启对计划任务的支持,注解在springboot启动类中用于开启对定时任务的支持
常见的标准Annotation注解
@Override注解:它说明了被标注的方法重载了父类的方法,起到了断言的作用
@Deprecated注解:当一个类、类型或者类型成员使用@Deprecated修饰的话,编译器将不鼓励使用这个被标注的程序元素。(常用来表示该类、类型或者类型成员被弃用)
@SuppressWarnings注解:此注解能告诉Java编译器关闭对类、方法及成员变量的警告。
业务逻辑中常见的注解:
@Controller和@RestController:
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
2.若返回json等内容到页面,则需要加@ResponseBody注解
3.@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
解
@Resource和@Autowired
@Autowired默认按类型装配,属于spring注解,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired() @Qualifier("baseDao")
private BaseDao baseDao;
@Resource是JDK1.6支持的注解,默认按名称进行装配,当注解在字段上,默认取字段名,当按名称找不到匹配的bean时,按照类型去找,但如果name属性一旦指定名称,那么就只按照名称去找
@ResponseBody和@RequestBody
@RequestBody注解:用于将前端传入controller方法的参数,转换为对应的Java对象, @ResponseBody注解:用于将后端返回的对象按照某种格式,返回给前端(如json,xml等)
@RequestMapping注解:用来映射请求路径
@Service注解:
1、@service("serviceName"): 表示给当前类命名一个别名,方便注入到其他类中;
2、@service:不加的话,默认别名就是当前类名,但是首字母小写