Bean不同配置方式比较

简介: 原文:Bean不同配置方式比较  基于XML配置 基于注解配置 基于Java类配置 Bean定义 在XML文件中通过元素定义Bean,如: 在Bean实现类处通过标注@Component或衍型类@Repository、@Service及@Controller定义Bean 在标注了@Configuration的Java类中,通过在类方法上标注@Bean定义一个Bean。
原文: Bean不同配置方式比较

  基于XML配置 基于注解配置 基于Java类配置
Bean定义 在XML文件中通过<bean>元素定义Bean,如:<bean class="com.bbt.UserDao"/> 在Bean实现类处通过标注@Component或衍型类@Repository、@Service及@Controller定义Bean 在标注了@Configuration的Java类中,通过在类方法上标注@Bean定义一个Bean。方法必须提供Bean的实例化逻辑
Bean名称 通过<bean>的id或name属性定义,如:<bean id="userDao" class="com.bbt.UserDao"/> 默认名称为:com.bbt.userDao#0 通过注解的value属性定义,如@Component("userDao")。默认名称为小写字母打头的类名(不带包名):userDao 通过@Bean的name属性定义,如@Bean("userDao"),默认名称为方法名
Bean注入 通过<property>子元素或通过p命名空间的动态属性,如p:userDao-ref="userDao"进行注入 通过在成员变量或方法入参处标注@Autowired,按类型匹配自动注入。还可以配合使用@Qualifier按名称匹配方式注入 比较灵活,可以通过在方法处通过@Autowired方法入参绑定Bean,然后在方法中通过代码进行注入,还可以通过调用配置类的@Bean方法进行注入
Bean生命过程方法 通过<bean>的init-method和destory-method属性指定Bean实现类的方法名。最多只能指定一个初始化方法和一个销毁方法。 通过在目标方法上标注@PostConstruct和@PreDestroy注解指定初始化或销毁方法,可以定义任意多个方法 通过@Bean的initMethod或destoryMethod指定一个初始化或销毁方法。
对于初始化方法来说,你可以直接在方法内部通过代码的方式灵活定义初始化逻辑
Bean作用范围 通过<bean>的scope属性指定,如:<bean class="com.bbt.UserDao" scope="prototype"/> 通过在类定义处标注@Scope指定,如@Scope("prototype") 通过在Bean方法定义处标注@Scope指定
Bean延迟初始化 通过<bean>的lazy-init属性指定,默认为default,继承于<beans>的default-lazy-init设置,该值默认为false 通过在类定义处标注@Lazy指定,如@Lazy(true) 通过在Bean方法定义处标注@Lazy指定

 

 
 
  基于XML配置 基于注解配置 基于Java类配置
适合场景 1)Bean实现类来源于第三方类库,如DataSource,JdbcTemplate等,因无法在类中标注注解,通过XML配置方式较好;
2)命名空间的配置,如aop、context等,只能采用基于XML的配置
Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置 基于Java类配置的优势在于可以通过代码方式控制Bean初始化的整体逻辑。所以如果实例化Bean的逻辑比较复杂,则比较适合用基于Java类配置的方式
 
一般可以采用XML配置DataSource、SessionFactory等资源Bean,在XML中利用aop、context命名空间进行相关主题的配置。其他所有项目中开发的Bean,都通过基于注解配置的方式进行配置,即整个项目采用“基于XML+基于注解”的配置方式,很少采用基于Java类的配置方式。
目录
相关文章
|
5月前
|
Java 开发者 Spring
Spring中获取Bean对象的三种注入方式和两种注入方法
Spring中获取Bean对象的三种注入方式和两种注入方法
|
16天前
|
XML Java 数据格式
Spring Bean的定义(含创建Bean的三种方式)
Spring Bean的定义(含创建Bean的三种方式)
|
16天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
11月前
|
XML Java 数据格式
配置bean的4种情况
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
65 2
|
Java 容器 Spring
Bean的加载方式
Bean的加载方式 1.XML方式声明bean 2.XML+注解方式声明bean 3.注解方式声明配置类 扩展1——FactoryBean 扩展2——配置类中导入原始的配置文件(系统迁移) 扩展3——proxyBeanMethods 4.使用@Import导入要注入的bean 扩展4——使用@Import注解还可以导入配置类 5.使用上下文对象在容器初始化完毕后注入bean 6.导入实现了ImportSelector接口的类,实现对导入源的编程式处理 bean的加载方式(七) bean的加载方式(八)
|
JSON API 分布式数据库
Bean 方式|学习笔记
快速学习 Bean 方式。
88 0
|
分布式数据库 流计算 开发者
bean 方式 | 学习笔记
快速学习 bean 方式
67 0
|
XML Java 数据格式
【Spring 从0开始】IOC容器的Bean管理 - 基于XML,注入外部bean、内部bean和级联赋值
【Spring 从0开始】IOC容器的Bean管理 - 基于XML,注入外部bean、内部bean和级联赋值
【Spring 从0开始】IOC容器的Bean管理 - 基于XML,注入外部bean、内部bean和级联赋值
|
XML Java 测试技术
Sping中的配置Bean的几种方式
Sping中的配置Bean的几种方式
221 0
|
XML Java 数据格式
Spring - Bean管理之三种实例化Bean的方式(XML)
Spring - Bean管理之三种实例化Bean的方式(XML)
70 0
Spring - Bean管理之三种实例化Bean的方式(XML)