@RequestParam用于从请求URL中获取参数并映射到方法参数中的注解。
@RequestMapping将一个请求URL指向一个类的方法的注解。用于处理请求地址映射,可以作用于类和方法上。
@ResponseBody作用于方法上,可以将整个返回结果以某种格式返回,如JSON字符串。
@ModelAttribute作用在Controller的某个方法上,此方法会首先被调用,并将方法结果作为Model的属性。
@Autowired自动按照类型注入,不关心bean的id,只要有唯一的类型匹配就可以注入成功。如果注入的bean在容器中类型不唯一时,他会把变量名作为bean的id,然后在容器中查找,找到则注入成功,如果没有一致的beanId则报错。
除注解外,还需要了解项目的文件路径、配置文件等。
@Component【最好对应到每层中(@Controller、@Service、@Repository、@Mapper)】、@RequestMapping(“路径”)【填写路径时需要注意类名上方是否已经存在父路径】、@Autowired、@RequestParam(“xx”)【xx为前端中的name属性对应的名称】、
resultType【全类名一定要写对】、ParameterType、resultMap、association【id、result】、collection【id、result】、#{}、useGeneratedKeys、一些id的对应关系
@preHandle、@PostHandle、@AfterCompletion、addInterceptors、HandleInterceptor
@Pointcut、@Before、@After、@Around、@AfterReturning、@AfterThrowing
将组件之间的依赖关系反转,让外部容器来负责这些依赖关系,而不是由组件自己来创建和管理他们。
①使用set方式注入 ②使用构造函数 ③使用注解注入【配置文件可能出现的代码题中】
使用ApplicationContext工厂的接口,使用该接口可以获取到具体的Bean对象。
面向切面编程,把程序中重复的代码抽取出来,在需要执行的时候使用动态代理技术在不修改源代码的基础上对已有方法进行增强。
①Joinpoint(连接点):指能被拦截到的点,在Spring中只有方法能被拦截。
②Pointcut(切点):指要对那些连接点进行拦截,即被增强的方法。
③Advice(通知):指拦截后要做的事情,即切点被拦截后执行的方法。
④Aspect(切面):切点加通知称为切面。
@Pointcut:定义切入点表达式,即指定在哪些方法或类上应用切面逻辑。
@Before:在目标方法执行之前执行切面逻辑。
@After:在目标方法执行之后(无论是否发生异常)执行切面逻辑。可用于执行一些收尾操作,如资源释放、事务处理等。
@Around:在目标方法执行前后执行切面逻辑,并可以控制目标方法的执行。
@AfterReturning:在目标方法成功执行后执行切面逻辑。
@AfterThrowing:在目标方法抛出异常后执行切面逻辑。
① 环绕通知前
② @Before通知
③ 程序逻辑
④ @AfterReturning通知
⑤ 通知@After通知
⑥ 环绕通知后
① 环绕通知前
② @Before通知
③ @AfterThrowing异常通知
④ @After通知
①执行preHandle方法,该方法返回一个布尔值。如果为false,则结束所有流程;如果为true,则执行下一步;
② 执行处理器逻辑,它包含控制器的功能;
③ 执行postHandle方法;
④ 执行视图解析和视图渲染;
⑤执行afterCompletion方法。