Spring 相关注解
用于启动类上面的注解
@SpringBootApplication
这是一个复合注解
@SpringBootConfiguration 作用于 @Configuration 一样 @EnableAutoConfiguration 开启自动化配置 @ComponentScan 开启IOC容器的扫描器,自动扫描与当前启动类同级或下级的所有组件类,发现,注册,注入
@MapperScan("") //不是Springboot注解 是MyBatis注解
配置Mapper接口所在的包路径,MyBatis基于动态代理模式,在运行时候代理Mapper接口中方法的实现
用于控制器上面的注解
@Controller
让当前类被扫描器发现,被注册对象到 IOC 容器,并且对象被当做控制器使用
@RequestMapping
映射类或方法的请求 url 地址,类可以有地址也可以没有,类的 url 地址是当前类中所有方法 url 地址的前缀
给类映射 url 地址的时候不可以指定请求方法,给方法映射 url 地址的时候可以指定请求方式为 get 或 post ,如果不指定默认是get
@GetMapping
@PostMpping
@ResponseBody
将控制器方法返回的结果直接转换为 json 格式,然后放到响应报文中进行返回,这样控制器方法只返回数据,不用转发到 jsp
它是和 ajax 发起的 http 请求一起使用的
@RequestParam
用于修正参数名,设置参数是不是必须的
Rest风格的控制器
@RestContror
定义一个 rest 风格的控制器
1.控制器中所有的方法都默认@ResponseBody 注解,只返回数据,不做转发和重定向操作
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
用于 Service 上面的注解
@Param
当接口中的方法有多个参数的时候,需要用@Param注解修正参数名字,在 Mapper.xml 文件中根据 @Param 注解修正后的名字进行取值
用于实体类的注解
@TableName
用于实体类,映射表名
@TableId
映射表中的主键id
@TableField
映射表中的字段,如果该字段
如果实体类中类名和属性名完全遵守驼峰命名规范
数据库表名和字段名完全遵守全小写+下划线连字符规范
name就不需要使用 @TableName 和 @TableField 进行手动映射, MyBatis 框架会在自动映射
配置相关的注解
@Configuration
让任意一个类成为一个配置类
@Bean
用于配置类中的方法,将方法返回的对象注册到 IOC 容器中
@Value("${配置名}")
用于读取 application.propertis 核心配置文件中,根据配置名读取值,并把值赋给成员变量
IoC注解(控制反转,让扫描器去发现,注册 Bean 到 IOC 容器)
@Controller(用于控制器)
@Service(用于Service)
@Repository(用于 dao)
@Component(用于普通组件类,例如用于AoP类)
@Configuration(用于配置类)
@Scope(用于设置Bean的作用域)
@Scope("singleton") 单例模式
在启动时就会发现和创建 Bean 放到 Ioc 容器,在使用时不会创建新的 Bean
@Scope("prototype") 原型模式
在启动时不会发现和注册 Bean 到 IoC 容器,每访问一次就会创建一个新的对象
DI注解
@Resource
JDK 提供的
@Autowired
框架自带的
AoP注解
@Aspect
定义一个 AoP 切面类
@Pointcut
定义一个切面表达式,根据表达式寻找被 AoP 代理增强的目标方法
@Before
定义一个前置代理增强的方法
@AfterReturning
定义一个返回时代理增强的方法
@AfterThrowing
定义一个抛出异常时代理增强的方法
@After
定义一个后置代理增强的方法
@Around
定义一个环绕代理增强的方法
Spring 事务管理注解
@Transactional
1.可以用于类,也可以用于方法,如果用于类,则类中所有方法都会开事务执行,用于方法是单个方法开事务执行
2.可以用于 Controller 类,也可以用于 Service 类, 或者其他操作数据库的类
3.必须指定 rollbackFor=某个异常类型.class ,表示当执行过程中发生这种异常时进行回滚,不发生执行提交
@Transactional (rollbackFor = Exception.class)
4.书屋隔离级别默认是数据库的默认隔离级别,可以通过 isolation 设置 ,取值是 isolation 枚举类型
@Transactional (rollbackFor = Exception.class,isolation = Isolation.DEFAULT)
5.可以通过 propagation 指定事务传播机制,,取值是 Propagation 枚举类型
Lombok相关注解
@Data
用于自动在字节码中生成 getter 和 setter 、重写 toString() 方法,重写 equals() 和 hashcode() 方法
@Slf4j
用于在字节码中生成一个全局的静态常量 log ,用于打印日志