spring常见注解主要用作实例化对象
@Component @Controller @Service @Repository 使用在类上用于实例化Bean
@Controller 标注在表示层上 @Service标注在业务层上 @Repository标注在持久层上 不属于此三层使用@Component
@Autowired 使用在字段上根据类型依赖注入
@Qualifier 结合@Autowired一起使用 用于根据名称进行依赖注入DI
@Qualifier("***Impl"),依赖注入Service层,其实现类匹配能匹配多个时,使用指定实现类名称进行注入,也可以@Primary标注在实现类上,表示当一个接口有多个实现类时,默认使用哪个作为主实现
@Bean 上述注解都是用于将自己创建的类的对象放入IOC容器中,而@Bean用于将第三方提供的类创建对象放入Spring容器中.
@Bean写在方法上,表示该方法的返回对象放到Spring容器中,在容器中的标识默认是方法名,@Bean与标注的方法的代码要写在配置类中即@Configuaration标注的类
@Configuaration 指定当前类是一个Spring配置类,Spring在启动的时候会自动扫描加载类中的配置
@ComponentScan 用于指定Spring在初始化容器时要扫描的包,也可Mapper层上直接标@Mapper
@Scope标注Bean的作用范围 Spring支持五种作用域
@Scope("singleton")设置类要创建单例对象,这也是默认配置
@Scope("prototype")多例对象
@Import 使用@Import导入的类会被Spring加载到IOC容器中
spring常见注解中也有用于切面编程(AOP)的,多用于增强方法(共有功能)、测试代码性能、日志记录、事务管理(@Transactional声明式事务)等
@Aspect定义切面类
@Pointcut 用于定位切点,内execution()写切点表达式,一般配合自定义注解使用,@annotation("自定义注解包名")
@Before 前置通知@After 后置通知@Around环绕通知
SpringMVC注解主要用来接收前端请求参数,响应返回数据的
@RequestMapping用于映射请求路径,可定义在类上和方法上.用于类上,则表示类中的所有方法都是以改地址作为父路径
@RequestBody 注解实现接收http请求的json数据,将json转换为java对象
@RequestParam指定请求参数的名称
@PathViriable从请求路径中获取请求参数(/user/{id}),传递给方法的形式参数
@RequestHeader获取指定的请求头数据
@ResponseBody注解实现将controller方法返回对象转换为json对象响应给客户端
@RestController =@Controller+@ResponseBody,一般代码开发中返回值都要求是json对象,所以直接在表示层类上标注@RestController即可
@RestControllerAdvice 标注在类上,声明当前的类是一个专门处理异常的类
@ExceptionHandler标注在方法上,声明当前方法可以处理哪些异常
基于Restful软件架构风格,强调HTTP应当以资源为中心(请求地址中尽量不要出现动词)
REST规范了HTTP请求动作,使用四个词语分别标识对资源CRUD操作:GET(获取)、POST(新建)、PUT(更新)、DELETE(删除)
于是Conroller表示层接收请求时,类上标注先标注@RestController,再标注@RequestMapping表示请求共用路径,类中具体Conroller方法上使用@GetMapping、@PostMapping、@PutMapping、@DeleteMapping,接收具体的增删改查请求
@SpringBootApplication启动类专用注解
@ConfigurationProperties标注在配置类上,用于读取配置类文件(yml)中指定前缀prefix的配置信息。例如@ConfigurationProperties(prefix=“user”)
@Value 读取配置文件中的属性值并逐个注入到Bean对象对应的属性中,
例如@Value("${property.name}")
@Slf4j 记录日志用的,添加此注解后,就可以在类中使用log的对象了
@SpingBootConfiguration 组合了@Configuration注解,实现配置文件的功能
@EnableAutoConfiguation 打开了自动配置的功能,也可以关闭某个自动配置的选项
@ComponentScan Spring组件扫描
@SpringBootTest标注在单元测试的类上 注意测试类的位置必须在启动类所在包之下,测试方法正常标注@Test