目录
IoC注解(控制反转,让扫描器发现,注册Bean到IoC容器中):
@SpringBootApplication 这是一个复合注解,包含3个注解 @SpringBootConfiguration作用于与@Configuration,让当前类成为一个配置类 @EnableAutoConfiguration 开启自动化配置 @ComponentScan 开启IoC扫描器,自动扫描与当前启动类同级或下级所有的组件类,发现、注册、注入
@MapperScan("") 用来配置Mapper接口所在的包路径,MyBatis基于动态代理模式,在运行时代理所有Mapper接口
@Controller 让当前类被发现,被注册对象到IoC容器,并且对象被当作控制器使用 @RequestMapping 映射类或方法的请求url地址,类可以有地址也可以没有,类的url地址是当前类中所有方法url地址的前缀,给类映射url地址的时候不可以指定请求方式,给方法映射url地址的时候可以指定为请求方式为get或post,如果不指定默认是get @GetMapping @PostMapping @ResponseBody 将控制器方法返回的结果直接转换为json格式,然后放到响应报文中进行返回,这样控制器方法只返回数据,不用转发到jsp,它是和ajax发的http请求一起使用的 @RequestParam 用于修正参数名,设置参数是不是必须的
@RestController 定义一个rest风格的控制器 1.控制器中将所有的方法都默认使用了@ResponseBody注解,只返回对象,不做转发和重定向 @GetMapping @PostMapping @PutMapping @DeleteMapping @PathVariable

@Service 让Service类被IoC容器发现,注册
@Param 当接口中的方法有多个参数的时候,需要用@Param注解修正名字,在Mapper.xml文件中根据@Param注解修正后的名字进行取值
@TableName 映射表名
@TableId 映射表中的主键id
@TableField 映射表中的字段
如果实体类中类名和属性名完全遵守驼峰命名规范
数据库表名和字段名完全遵守全小写+下划线连字符规范
那么就不需要使用@TableName和@TableField进行手动映射,MyBatis框架会在自动映射
@Configuration 让任意一个类成为一个配置类 @Bean 用于配置类中的方法,将方法返回的对象注册到IoC容器中 @Value("${配置名}") 用于读取application.properties核心配置文件中,根据配置名读取值,并把值赋给成员变量
@Contorller 用于控制器 @Service 用于Service @Repository 用于dao @Component 用于普通组件类,例如用于AoP类 @Configure 用于配置类 @Scope 用于设置Bean的作用域: @Scope("singletion")单例模式:在启动时就会发现和注册Bean放到IoC容器,不会创建新的对象 @Scope("prototype")原型模式:在启动时就会发现和注册Bean放到IoC容器,每访问一次就会创建一个新的对象
@Resource JDK提供的
@Autowired 框架自带的
@Aspect 定义一个AoP切面类 @Pointcut("execution(*com.iweb.springboot.controller..(..))") 定义一个切面表达式,根据表达式寻找被AoP代理增强的目标方法 @Before 定义一个前置代理增强的方法 @AfterReturning 定义一个返回时代理增强的方法 @AfterThrowing 定义一个抛出异常时代理增强的方法 @After 定义一个后置代理增强的方法 @Around 定义一个环绕代理增强的方法
@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枚举类型

事务隔离级别有4种:(重点了解)

事务传播机制级别有7种(使用默认即可)

@Data 用于自动生成getter/setter方法,重写toString()方法,equals()和hashcode()方法 @Slf4j 在字节码中生成一个全局的静态常量log,用于打印日志