Spring注解

@Configuration

标记当前类为配置类

@Bean

告诉Spring容器,当前方法的名称,为Map中的key

返回值是Map中的value

常规条件下,Spring通过反射实例化对象

也可以由用户自己new的方式创建

@ComponentScan("路径")

包扫描,让Spring注解生效

@Scope("singleton")

单例模式,默认为单例模式

@Scope("prototype")

多例模式

@Lazy

懒加载,需要配合@Scope使用

@Component

类似@Bean注解,将类交给Spring容器管理

@PostConstruct

标识初始化方法

@PreDestroy

标识销毁方法

@Autowired

自动注入

@PropertySource(value="class:/文件名",encoding="UTF-8")

指定配置文件

@Value(数据)/@Value(${文件中的Key})

动态赋值

@PropertySource

加载指定路径的配置文件properties

@Aspect

标识当前类是一个切面

@Pointcut

标识切入点表达式

切入点表达式

        *号是通配符,表示任意

        bean标签

                bean("对象的ID")只能匹配固定的类/对象一个        粗粒度

        within表达式

                within(包名.类名)可以匹配多个类        粗粒度

        execution表达式        细粒度

                @Pointcut("execution(* com.*..*(..))")

                匹配com包下任意类任意方法任意参数 任意返回值的方法

                execution(返回值类型 包名.类名.方法名(参数列表))

        @annotation

                @Pointcut("annotation(路径.注解)")

                使用注解拦截

@Before前置通知       

在执行方法前执行

@AfterReturning后置通知 

在执行方法后执行

@After

最终通知                基本不用

不管目标方法执行是否正确,都要执行(类似try-catch中的finally)

@AfterThrowing  

异常通知

目标方法执行时,抛出异常

@Around        

环绕通知(类似包括前置通知后置通知的整合)

环绕通知必须提供参数,并且必须位于通知的第一位

前四大通知类型不能控制目标方法的运行,一般记录程序的运行状态

在目标方法执行前后都要运行,只有环绕通知才可以控制目标方法运行,使用最多的通知方法

@EnableAspectJAutoProxy

让AOP生效,写在配置类中

可以添加属性(proxyTargetClass=true)让代理默认为CGLib代理,不建议使用默认为jdk代理,因为不是所有类都有接口。

@Order(value=数字)

给切面类排序,数字越小,越先执行

关于JoinPoint和ProceedingJoinPoint区别
说明:
1.ProceedingJoinPoint只适用于环绕通知,因为只有环绕通知,才能控制目标方法的运行.
2.JoinPoint 适用于其它的四大通知类型,可以用来记录运行的数据.
3. ProceedingJoinPoint 中有特殊的方法proceed();
4. 如果使用"JoinPoint" 则必须位于参数的第一位

@RequetMapping("/路径")

负责用户的路径请求与后台服务器之间的映射关系

如果请求路径不匹配,则用户报错404

@ResponseBody

作用:讲服务器的返回值转化为JSON串,如果服务器返回的是String类型,则按照自身返回

@RestController 

@Controller+@ResponseBody

@PathVariable

restFul结构,接收参数的注解

@RequestMapping(path = "/login", method=RequestMethod.GET)

path指定路径,method可以标识方法,有的公司不使用GetMapping等

@PostMapping("")

新增:post请求类型

@DeleteMapping("")

删除:delete请求类型

@PutMapping("")

修改:put请求类型

@GetMapping("")

查询:get请求类型

@CrossOrigin       

允许跨域

  1. GET/DELETE 参数提交的方式一致
  2. POST/PUT 参数提交的方式一致
  3. restFul结构适用于所有的请求类型

@Data

//自动生成Getter,Setter,RequiredArgsConstructor(可以理解为无参构造),toString,EqualsAndHashCode,Value方法

@NoArgsConstructor

//无参构造

@AllArgsConstructor

//全参构造

@Accessors(chain = true)

//开启链式加载

@Mapper

        1.将接口交给Mybatis管理,之后将mybatis交给spring管理

        2.动态代理机制 为接口创建代理对象 Map(userMapper,代理对象)

        3.接口和实现类,所有的sql写到映射文件中

@SpringBootTest

标记类为SpringBoot测试类,只启动Spring容器不启动服务器

@Param
Mybatis中不允许直接传递多个数据,如果多值需要转化为“单值”

1.将多值数据转化为POJO对象

2.将多汁数据转化为Map集合,Mybatis为转化Map集合提供了注解@Param

例如:

需要传递两个参数

引号中的字段为map中的key,后面的值就是map中的value

@Param

Mybatis中将参数封装为Map集合 在给xml中传参时多个值想要封装到统一个map中除了写map集合外,也可以在传参时写上@Param注解

例如:List<User> findUserList( @Param("query") String query,@Param("size") int size,@Param("startNum") int startNum);

引号中间的为Map中的key,传过来的值为value

@Alias

Mybatis定义对象的别名 @Alias("别名")

@MapperScan("mapper接口路径")

写在spring的主启动类,包扫描,可以不用在mapper接口上写@Mapper注解,给扫描路径中的接口默认识别为Mapper

Mybatis注解sql

@Select("select * from 表名")

@Insert("sql")

@Update("sql")

@Delete("sql")

@Transactional

Spring中用来控制事务,增删改需要添加事务,查不会对数据进行更改。

@RestControllerAdvice

Controller层中的全局异常处理 因为调用规则,最后报错都会返回到Controller层使用在Controller添加全局异常捕获就好

@ExceptionHandler(RuntimeException.class)

使全局异常处理生效,捕获运行时异常

需要传参,最大异常Exception exception

exception.printStackTrace()打印异常

@TableName("表名")

MybatisPlus注解

POJO与数据表进行绑定 一一对应

@TableId(type = IdType.AUTO)

MybatisPlus注解 标识主键自增

@TableFieId("字段")/(exist = false)

与字段进行绑定,如果名称一样就可以省略,如果在yml文件中配置了驼峰规则,也可以省略该注解/标识属性是否存在,以及名称是否一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值