spring注解

spring

1、spring注解

1、@RequestParam:

获取参数的值,参数名可以不一致

2、@PathVariable:

1、获取rest风格参数的值,参数名可以不一致

2、如果路径中的变量与方法中的变量名一致,可直接使用@PathVariable;

3、如果二者不一致,则使用@PathVariable(Variable)显示指定要绑定的路径中的变量 。

4、@PathVariable只能绑定路径中的占位符参数,且路径中必须有参数。

3、@Configuration:

@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext

类或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器

4、@Conditional(xxx.class):

    这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置,也可以标注在方法上面,只是对该方法启用配置。

5、@ConditionalOnClass:

是Springboot实现自动配置的重要支撑之一。其用途是判断当前classpath下是否存在指定类,若是则将当前的配置装载入spring容器

6、@ConditionalOnMissingClass:

    某个class类路径上不存在的时候,才会实例化一个Bean

7、@ConditionalOnMissingClass:

    某个class类路径上不存在的时候,才会实例化一个Bean

8、@ConditionalOnBean:

    仅仅在当前上下文中存在某个对象时,才会实例化一个Bean

9、@ConditionalOnMissingBean:

    该注解表示,如果存在它修饰的类的bean,则不需要再创建这个bean;可以给该注解传入参数例如@ConditionOnMissingBean(name = "example"),这个表示如果name为“example”的bean存在,这该注解修饰的代码块不执行。

10、@ConditionalOnExpression:

    当表达式为true的时候,才会实例化一个Bean

11、@ConditionalOnNotWebApplication:

    不是web应用

12、@Resource:

作用相当于@Autowired,只不过@Autowired按Type自动注入,而@Resource默认按 Name自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
  @Resource装配顺序
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

13、@Qualifier:

    如果service层有多个实现,spring不知道应该绑定哪个实现类,所以抛出了如上错误。这个时候就要用到@Qualifier注解了,qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的,我们修改调用代码,添加@Qualifier注解,需要注意的是@Qualifier的参数名称必须为我们之前定义@Service注解的名称之一!

14、@Lazy(true):

    表示延迟初始化

15、@Component:

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

16、@PostConstruct:

用于指定初始化方法(用在方法上)

17、@PreDestory:

用于指定销毁方法(用在方法上)

18、@DependsOn:

定义Bean初始化及销毁时的顺序

19、@Primary:

自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常

20、@ControllerAdvice:

定义全局异常处理类

 

posted @ 2018-11-17 22:03  束发读诗书  阅读(224)  评论(0编辑  收藏  举报