【Java Web】Spring Annotation

1、@Required

@Required 注释应用于 bean 属性的 setter 方法,标有该注释的setter方法必须出现在Spring xml文件中初始化,否则容器就会抛出一个 BeanInitializationException 异常。

2、@Autowired

@Autowired 注释可以自动的注入参数(非int、String等数据类型),完成bean类中参数的初始化,我们称之为自动装配。

实例1:

@Autowired
public void setMajor(Major major) {
    this.major = major;
}

Spring会在容器中自动查找Major类的实例,为this.major初始化。当然这么写还是有点太啰嗦了。

实例二:

@Autowired
private Major major;

直接在声明 成员变量时加上该注释,可以省去写set方法实现同样的效果。

@Autowired 的(required=false)

默认情况下书写一个**@Autowired**注释是自动带有@Required注释的,如果不需要可以设置为@Autowired 的(required=false)

3、@Qualifier

@Qualifier 注释应用于容器中具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配得到情况。

实例:

@Autowired
@Qualifier("m1")
private Major major;
<bean id="m1" class="com.haya.bean.Major"></bean>
<bean id="m2" class="com.haya.bean.Major"></bean>

如上代码@Autowired自动装配Major类的实例,但容器中有两个实例,这是就需要@Qualifier 指定装配哪一个实例。这里@Qualifier(“m1”)指定的是id=“m1”的实例。

4、@Configuration 、 @Bean

带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源。@Bean 注解告诉 Spring,一个带有 @Bean 的注解方法将返回一个对象,该对象应该被注册为在 Spring 应用程序上下文中的 bean。最简单可行的 @Configuration 类如下所示:

package com.tutorialspoint;
import org.springframework.context.annotation.*;
@Configuration
public class HelloWorldConfig {
   @Bean 
   public HelloWorld helloWorld(){
      return new HelloWorld();
   }
}

上面的代码将等同于下面的 XML 配置:

<beans>
   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld" />
</beans>

Spring JSR-250 注释

1、@PostConstruct 和 @PreDestroy

标有**@PostConstruct注释的方法会被设置为init-method**方法。

标有**@PreDestroy** 注释的方法会被设置为destroy-method方法。

2、@Resource

@Resource类似于**@Autowired**,都是注入时使用的,但不同的是**@Autowired是根据类型注入(by type)而@Resource是根据名字注入(by name),指定id或name,这一点与@Qualifier** 相似。

猜你喜欢

转载自blog.csdn.net/HuaLingPiaoXue/article/details/83315724