我的读书笔记——Spring
Bean 的三种配置方式
基于XML配置 | 基于注解配置 | 基于Java类配置 |
---|---|---|
Bean定义 | 在Xml中通过 元素定义。如 | 在Bean实现类通过@compoent或者衍生类(repository/service/contraller)定义bean |
Bean名称 | 通过 的Id或者name属性定义,如 默认名称是com.bbt.userDao#0 | 通过注解的value属性定义,如@Component(“userDao”)默认名称是小写字母打头的类名(不带包名)userDao |
Bean注入 | 通过 子元素或者通过命名空间的动态属性,如p:userDao-ref=”userDao” 进行注入 | 在成员变量或者方法入参处标注@autowired ,按类型匹配自动注入。还可以配合使用@Qualifer 按名称匹配方式注入 |
Bean生命过程方法 | 通过的init-method和destory-method 属性制定Bean实现类的方法名。最多指定一个初始化方法和一个销毁方法 | 通过在目标方法上标注@PostConstruct 和@PreDestory 注解指定初始化或销毁方法,可以指定任意多个方法 |
Bean的作用范围 | 通过 的scope 属性指定,如 | 通过在类定义处标注@Scope指定,如@Scope(“prototype”) |
Bean的延迟初始化 | 通过的lazy-init 属性指定,默认default,继承于的default-lazy-init设置,该默认值为false | 通过在类定义出标注@Lazy指定,如@Lazy(“true”) |
适合场景 | 1、Bean的实现类来源于第三方类库,如DataSource,无法在类中使用注解;2、命名空间的配置,如aop,context等,只能采用基于XML的配置 | Bean的实现类是当前项目开发的,可以直接在java类中使用基于注解的配置 |