Spring学习(17)--- 三种装配Bean方式比较
基于XML配置 | 基于注解配置 | 基于Java类配置 | |
Bean定义 | <bean id="..." class="..." /> | @Component 衍生类@Repository @Service @Controller | @Configuration标注类,@Bean标注提供Bean方法 |
Bean名称 | 通过 id或name指定 | @Component("person") | @Bean("person") |
Bean注入 | <property> 或者 通过p命名空间 | @Autowired 按类型注入 @Qualifier按名称注入 | 在方法内部编写注入代码逻辑 |
生命过程、Bean作用范围 | init-method destroy-method 范围 scope属性 | @PostConstruct 初始化 @PreDestroy 销毁 @Scope设置作用范围 | 在方法内部调用初始化方法 @Scope指定范围 |
适合场景 | Bean来自第三方,使用其它命名空间 | Bean的实现类由用户自己开发 | 实例化Bean的逻辑比较复杂 |