Spring实战(3)-在IOC中装配Bean

Spring容器启动需要的条件:

  1. spring的类包已经放到了应用程序类路径下
  2. 应用程序为spring提供完备的Bean配置信息
  3. Bean的类都已经放到了应用程序的类路径下

这三个条件中,我们需要学习的就是那个Bean的配置。至于其他两条,Spring的支撑,以及Bean的类(也就是我们写的java类)就不说了。


Spring容器内部工作解析图:

Bean的配置信息首先定义了Bean的实现以及依赖关系,Spring容器根据各种形式的Bean配置信息在容器里建立Bean注册表。然后根据注册表加载、实例化Bean,并建立Bean与Bean之间的依赖关系。最后将这些准备就绪的Bean放到缓存池中提供给外层的应用程序进行调用。


Bean的配置

从上图看出,Spring支持XML、java配置、注解配置、Groovry配置。现在常用的就是XML配置和注解配置混合的方式。其中XML配置主要用来配置那些Bean实现类是来源于第三方类库,如DataSource、JdbcTemplate等,或者命名空间的配置,如aop等。其他的一般都采用注解的方式

不管什么配置,它们都是表达Bean定义的载体,其实质是为Spring容器提供Bean定义的信息。

XML配置:

Bean的定义:(id在IOC容器中是唯一的)

基于XML配置文件定义Bean:

XML配置的注入方式:

使用XML配置方式定义的Bean,要注入到需要的地方,Spring支持三种注入的方式:属性注入、构造函数注入和工厂方法注入。我们常用的是属性注入

属性注入要求Bean提供一个默认的构造函数,并为需要注入的属性提供对应的Setter方法。说白了就是在我们写的java类里面需要有构造函数,而且还需要为每个属性添加get,set方法。

扫描二维码关注公众号,回复: 5285270 查看本文章

属性注入之所以要求这些,是因为:Spring先调用Bean的构造函数实例化Bean,然后通过反射的方式调用Setter方法注入属性的值。

然后在使用时的代码简单实例如下:

// 1.创建Spring 的IOC的容器对象,并指明它的配置xml文件。

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

// 2.从IOC容器中获取bean实例

 Car car = (Car)ctx.getBean(Car.class);

 

注解配置:

就像上个文章提到的,配置的注解分为

使用注解配置,需要让spring知道你在哪里都使用了注解:

 

注解配置的注入:

Spring通过@Autowired 注解实现Bean的依赖注入。


 

猜你喜欢

转载自blog.csdn.net/qq_42666483/article/details/83056986