Spring全家桶相关注解总结

spring相关

@Controller

【控制器】效验有效参数的合法性(相当于安检系统)

@Service

【服务】业务组装(客服中心)

@Repository

【数据持久层】实际业务处理(实际办理的业务)

@Component

【组件】工具类层(基础的工具)

@Configuration

【配置层】配置

上面四个注解功能是一样的,都可以用来创建bean实例

2.注入,装配

(1)@Autowired:

根据属性类型进行自动装配,默认按类型装配(byType)自动装配

  • 作用于:标注 引用类型的构造器,方法,方法参数,注解
  • Spring全家桶相关注解总结_第1张图片

(2)@Resource:

可以根据类型注入,可以根据名称注入(byName),标注 类,字段,方法:

(3)@Qualifier:

根据名称进行注入,这个@Qualifier注解的使用,和上面@Autowired一起使用,
如果有多个类型一样的Bean候选者,则需要限定其中一个候选者

  • Spring全家桶相关注解总结_第2张图片

(4)@Value:注入普通类型属性

注解在属性上,单个注入
支持 SpEL

  1. 从配置文件读取值
    @Value("${property}")
    @Value("${property:默认值}")
  2. SpEL
    @Value(“#{SpEL表达式}”)

Spring全家桶相关注解总结_第3张图片

@ConfigurationProperties

通过指定的前缀,绑定配置文件中的配置
可以注解在类上,也可以放在@Bean的方法上。批量注入配置文件中的属性

一般用于多个数据源的配置,读写分离

Spring全家桶相关注解总结_第4张图片

Spring全家桶相关注解总结_第5张图片

@PropertySource

加载指定的配置文件

@ImportResource

标注在一个配置类,导入Spring的配置文件让其生效

Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别。
需要用@ImportResource加载生效

3.完全注解开发

创建配置类,替代xml配置文件

@Configuration :

作为配置类,替代xml配置文件

@ComponentScan(basePackages = {“包名”}):

开启注解扫描

4.在增强类上面添加注解

@Aspect,可与@Component注解一起使用生成代理对象

5.AOP相关 

在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置
(1)@Before:表示作为前置通知
(2)@After:最终通知
(3)@AfterReturning:后置通知(返回通知)
(4)@AfterThrowing:异常通知
(5)@Around:环绕通知
(6)@Pointcut:用于相同的切入点抽取

6.bean的生命周期

  • @Scope("作用域")作用范围设置

  • @PostConstruct初始化 Java自己的注解

  • @PreDestroy销毁

7.SpringMVC 

@Component的衍生注解
@Controller 标注类 : 对应 Spring MVC 控制层Controller对象,主要用于接受用户请求并调用 Service 层返回数据给前端页面。
@Service 标注类 : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao层。
@Repository 标注类 : 对应持久层即 Dao 层,主要用于数据库相关操作。
http Request 请求处理方法映射

@RequestMapping标注类,

方法 : http路径映射到处理类或方法

@GetMapping() 标注方法 :

http GET请求路径映射

@PostMapping()标注方法 :

http POST请求路径映射

@PutMapping标注方法 :

http PUT请求路径映射

@DeleteMapping标注方法 :

http DELETE请求路径映射

前端>后端传值

@PathVariable

 获取 路径参数

@RequestParam 

获取 请求参数 url中的?后面的参数

@RequestBody 

获取 请求Body中JSON字符串

Spring全家桶相关注解总结_第6张图片

后端>前后端传值

@Controller 

返回一个视图

@ResponseBody

标注类,方法: 用于Controller方法返回的对象,写入http的body区

@RestController

标注类: = @Controller + @ResponseBody

MyBatis注解

mapper

  • @Mapper 在接口类上添加,该接口是mapper
  • @MapperScan(value) 包下面的所有接口都是mapper

Spring全家桶相关注解总结_第7张图片

value:指定mapper接口类包路径

basePackages = 扫描包、类
sqlSessionFactoryRef = SqlSessionFactory Bean对象名
sqlSessionTemplateRef = sqlSessionTemplate Bean对象名

sql语句配置

@Select(“select * from user”)
@Insert(" insert into user ( name ) values (#{name}) ")
@Delete(" delete from user where id= #{id} ")
@Update("update user set name=#{name} where id=#{id} ")
 

其他

@Data : 标注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法

异常处理

@ControllerAdvice + @ExceptionHandler

@ControllerAdvice 表
示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件

AOP

@Aspect 切面

@Join Point 连接点

@Pointcut切点

@Advice通知

  • 前置通知使⽤ @Before:通知⽅法会在⽬标⽅法调⽤之前执⾏。
  • 后置通知使⽤ @After:通知⽅法会在⽬标⽅法返回或者抛出异常后调⽤
  • 返回之后通知使⽤ @AfterReturning:通知⽅法会在⽬标⽅法返回后调⽤。
  • 抛异常后通知使⽤ @AfterThrowing:通知⽅法会在⽬标⽅法抛出异常后调⽤。
  • 环绕通知使⽤ @Around:通知包裹了被通知的⽅法,在被通知的⽅法通知之前和调⽤之后执行自定义的⾏为。

持续补充中~~~~~~~~~~

你可能感兴趣的:(java,EE,spring,java,后端)