Spring Ioc--Bean装配
2015-08-05 10:26
411 查看
继前一篇IoC概述、Spring容器总结,接下来总结下Bean的装配过程。
要使引用程序中的Spring容器成功启动,需要同时具备以下3个条件:
1、Spring框架的类包,放在应用程序的类路径下。
2、应用程序为Spring提供完备的Bean配置信息。
3、Bean的类,都放到应用程序类路径下。
Spring启动时读取应用程序提供的Bean配信息,并在Spring容器中生成一份相应的Bean配置注册表,然后程序根据这张注册表实例化bean,装配好Bean的额依赖关系,为上层应用提供准备就绪的运行环境。
二、依赖注入
属性注入(灵活性高,常用)
构造函数注入
不管是XML还是注解,它们都是表达Bean定义的载体,其实质都是为Spring容器提供Bean的定义信息。
表现形式上是将XML定义的东西通过注解进行描述。Spring2.0开始引入基于注解的配置方式,在3.1时得到了进一步完善。
通过前面说到,Spring容器启动的三大要件是:Bean定义信息、Bean实现类以及Spring本身。如果采用XML文件的配置,Bean定义信息和类本身是分离的。而采用基于注解的配置方式,Bean定义信息通过在Bean实现类上标注注解实现。
@Compoent:Spring容器自动将POJO转换为容器管理的Bean
以下三个功能和@Compoent等效的注解:
1、@Repository:用于对DAO实现类进行标注
2、@Service:用于对Service实现类进行标注
3、@Controller:用于对Controller实现类进行标注
XML:1、Bean类类源于第三方类库,如Database、JdbcTemple等,因无法再类中进行注解。
2、命名空间的配置,如aop、context等,只能采用基于XML配置。
注解:Bean的实现类是当前开发的,可以直接在Java类中使用注解。
Java类:基于Java类配置的优势在于可以通过代码方式控制Bean的初始化的整体逻辑。所以如果实例化Bean的逻辑比较复杂,可以使用此方法。
要使引用程序中的Spring容器成功启动,需要同时具备以下3个条件:
1、Spring框架的类包,放在应用程序的类路径下。
2、应用程序为Spring提供完备的Bean配置信息。
3、Bean的类,都放到应用程序类路径下。
Spring启动时读取应用程序提供的Bean配信息,并在Spring容器中生成一份相应的Bean配置注册表,然后程序根据这张注册表实例化bean,装配好Bean的额依赖关系,为上层应用提供准备就绪的运行环境。
XML配置
一、Bean基本配置<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean id="car" class="com.smart.Car" init-method="myInit" destroy-method="myDestory" p:brand="红旗CA72" p:maxSpeed="200" /> </beans>
二、依赖注入
属性注入(灵活性高,常用)
构造函数注入
基于注解的配置
使用注解定义Bean不管是XML还是注解,它们都是表达Bean定义的载体,其实质都是为Spring容器提供Bean的定义信息。
表现形式上是将XML定义的东西通过注解进行描述。Spring2.0开始引入基于注解的配置方式,在3.1时得到了进一步完善。
通过前面说到,Spring容器启动的三大要件是:Bean定义信息、Bean实现类以及Spring本身。如果采用XML文件的配置,Bean定义信息和类本身是分离的。而采用基于注解的配置方式,Bean定义信息通过在Bean实现类上标注注解实现。
@Compoent:Spring容器自动将POJO转换为容器管理的Bean
以下三个功能和@Compoent等效的注解:
1、@Repository:用于对DAO实现类进行标注
2、@Service:用于对Service实现类进行标注
3、@Controller:用于对Controller实现类进行标注
基于Java类的配置
不经常使用总结
三种配置方式很难说孰优孰劣,各种不同的方式都有不同的引用场景,建议进一步了解。XML:1、Bean类类源于第三方类库,如Database、JdbcTemple等,因无法再类中进行注解。
2、命名空间的配置,如aop、context等,只能采用基于XML配置。
注解:Bean的实现类是当前开发的,可以直接在Java类中使用注解。
Java类:基于Java类配置的优势在于可以通过代码方式控制Bean的初始化的整体逻辑。所以如果实例化Bean的逻辑比较复杂,可以使用此方法。
相关文章推荐
- java中volatile关键字的含义
- Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)
- java加密解密技术(2) 单向加密MD5
- java 时间戳转换
- Spring_Ioc&Factory
- Java基础-集合Collection&List接口
- 跟大家推荐一个Java领域技术最先进的开源CMS全媒体内容发布平台
- Java中的四种引用
- Java compiler level does not match解决方法
- 详细解读Java的串口编程
- Initial SessionFactory creation failed.java.lang.NoSuchMethodError: javax.persistence.OneToMany.orph
- XML在JAVA项目中的作用
- java异常分析(二)
- java加密(1)Base64
- java5 线程池
- springmvc中文乱码
- Java 反射机制
- Java多线程——<三>简单的线程执行:Executor
- java 流概念的理解
- JAVAWEB 生成excel文字在一格显示两位不变成#号