Spring基于注解的方式配置

使用注解定义Bean

    Spring从2.0开始基于注解的方式进行配置,在3.0时得到了进一步的完善。Srping容器成功启动的三大要件分别是:Bean定义的信息,Bean实现类已经Spring本身。如果采用XML方式来配置的话,Bean定义信息和Bean实现类本身是分离的,而采用注解的方式配置的话,Bean定义的信息即通过在Bean实现类上标注的注解实现。

     @Component  放在一个类前边,他可以被Spring识别,Spring容器会自动将POJO转换为容器管理的Bean.他和XML配置是等效的:<bean id = "UserDao"  class= "com.test....">  下面有几个和这个等效,但是有微笑差别:

     @Repository :用于Dao层实现类进行标注。@Service:用于Service层实现类进行标注。@Controller:,,,,,,,,,,,,,,

使用注解配置信息启动Spring容器

    beans 头标签里边是生命context命名空间,在②处即可通过context命名空间的component-scan的 base-package属性指定一个需要扫描的基类包,Spring容器会扫描这个基类包下的所有类,并且从类的注解信息中获取Bean的定义信息。

自动装配Bean

      使用@Autowired进行自动注入

//  1、定义了一个Bean
@Component
public class LoadSystemData {

    //2、注入baseDao
    @Autowired
    private BaseDAO baseDAO;

 在1处将LoadSystemData 标注为一个Bean,在2处通过@Autowired注入到baseDao的Bean。@Autowired默认是按照类型匹配的方式,在容器查找匹配的Bean,当有且仅又一个匹配的时候,Spring将其注入到@Autowired的标注变量中。

     使用@Autowired的required的属性

如果容器中没有标注一个和标注变量类型匹配的时候,Spring容器将会报NoSuchBeanDefinitionException的异常。如果希望Spring容器即使找不到匹配的Bean完成注入也不要抛出异常,那么可以使用@Autowired(required=false)进行标注。

     使用@Qualifier指定注入Bean的名称

@Qualifier("userDao"),这时,假设容器有两个类型为UserDao的Bean,一个名字为userDao,另一个名为otherUserDao,那么则会注入名字为userDao的Bean

猜你喜欢

转载自blog.csdn.net/qq_39705793/article/details/82419384