| IOC容器 BeanFactory 接口 ApplicationContext 接口 WebApplicationContext 接口 ClasspathXmlApplicationContext     基于XML配置的IOC容器 AnnotationConfigApplicationContext    基于注解的IOC容器 XmlWebApplicationContext    web工程相关的IOC容器Bean的作用域Spring注解 @Configuration        代表这是一个java配置类 @Bean   装配bean注解,name属性可以不指定,默认是方法名作为bean的名称 @Component  @ComponentScan         basePackages :定义扫描的包         basePackageClasses :定义扫描的类          includeFilters   excludeFilters: includeFilters 是定义满 足过滤器( Filter )条件的 Bean 扫描, excludeFi lters 排除过滤器条件的 Bean ,它们都需要 通过 个注解@Fi lt er 去定义。 ComponentScan(basePackages = "com.springboot.chapter3 . * ”, excludeFilters = {@Filter(classes = {Service . class})})   @Autowired             首先它会根据类型找到对应的 Bean, 如果对应类型的 Bean 不是唯 的,那么它会根据其属性名称和 Bean 的名称进行匹配。如果匹配得 上,就会使用该 Bean :如果还无法匹配,就会抛出异常。  @Primar          修改优先权的注解 ,告诉 pring IoC 容器 当发现有多个同样类型的 Bean 时, 优先使用加了@Primary注解的类进行注入 。 @Quelifier   指定根据名称注入,可以单独使用,但单独使用只能作用在方法上。 @Value    既可以加载属性,以加在方法上 。 @ConfigurationProperties   将properties属性文件的属性自动配置到pojo的属性中 @PropertySource   可以单独指定需要加载的配置文件         @PropertySource(value={” classpath : jdbc. properties ”} ,ignoreResourceNotFound=true)  value可以配置多个配置文件。 @Conditional    条件装配         @Conditional(DatabaseConditiona.class)  @Profile        配置不同环境下的properties文件 @ImportResource        引入对应的xml配置文件         @ImportResource (value = {'’ cl.as spa th: spring-other . xml"})  AOP注解 @Aspect        声明一个类为切面         @Before   前置通知,在方法执行之前执行。          @After  后置通知,在方法执行之后执行(无论是否发生异常)还不能访问目标方法执行的结果。          @Around    环绕通知,围绕着方法执行。         @AfterThrowing    异常通知,在方法抛出异常之后。         @AfterReturning  返回通知,在方法正常结束后返回结果之后执行,可以访问方法的返回值。 @Pointcut        定义一个切点异常处理 HandlerExceptionResolver接口的实现类由核心控制器DispatcherServlet装载。 @ExceptionHandler   定义局部异常处理方法。 注意,该注解不是加在产生异常的方法上,而是加在处理异常的方法上。 @ExceptionHandler(AuthorizationException.class) public Object handleAuthorizationException(AuthorizationException e, HttpServletRequest request) {
 logger.error(e.getMessage(), e);
 if (HttpServletUtils.jsAjax(request)) {
 return R.error(403, "未授权");
 }
 return new ModelAndView("error/403");
 }
         产生异常时,异常信息会被前置处理器捕获到,然后交给ExceptionHandlerExceptionResolver进行解析并分派处理。上面的handleAuthorizationException方法上加了@ExceptionHandler(AuthorizationException.class)注解,就是对AuthorizationException异常的处理方法。         @ExceptionHandler 的value属性是一个Class 数组,因此我们可以在该注解的属性中加入多个异常类.当目标方法产生异常时,将被这个方法捕捉,我们可以得到异常的实例这个异常处理只能处理当前类产生的异常,是局部的异常处理方法。         @ExceptionHandler注解定义的方法优先级问题:例如发生的是NullPointerException,但是声明的异常有RuntimeException和Exception,这时候会根据异常的最近继承关系找到继承深度最浅的那@ExceptionHandler注解方法,即标记了RuntimeException 的方法。 @ControllerAdvice  定义全局异常处理方法。         当一个类加上@ControllerAdvice注解,告诉ExceptionHandlerExceptionResolver这个类是用来处理异常的。而具体的处理异常的方法加上@ExceptionHandler注解就行了。         ExceptionHandlerMethodResolver先在处理类内部找被@ExceptionHandler 注解的方法,如果找不到,就会去被@ControllerAdvice注解的的类中的 @ExceptionHandler 注解方法。 注意: 当被 @ExceptionHandler标记为异常处理方法,不能在方法中设置别的形参。但是可以使用ModelAndView向前台传递数据。  
 |