说明:
(1)通过【Spring IoC容器与Bean管理4:使用XML方式实现Spring IoC预一:Spring IoC初体验一:IoC容器完成【对象的实例化】;】和【Spring IoC容器与Bean管理5:使用XML方式实现Spring IoC预二:Spring IoC初体验二:IoC容器完成【对象与对象之间的依赖关系】;】两篇博客,我们对Spring IoC有了一个模糊的感性认识;但是,光有感性认识远远不够,Spring IoC中有很多细节需要逐一了解。
……………………………………………………
(2)Spring IoC部分主要分为以下几个模块:
即Spring IoC部分主要内容是【使用XML的方式,实现Spring IoC】,【Bean对象的作用域和生命周期】,【使用注解方式,实现Spring IoC】,【使用Java Config方式,实现Spring IoC】这四部分。而本篇博客主要介绍,如上图的红色部分:无参构造(也就是默认构造方法)实例化对象;
……………………………………………………
(3)其实Spring IoC的核心就是管理对象,而Spring IoC容器中管理的对象是Java Bean对象(以后,可以使用Bean来指代IoC容器中的对象;),所以Spring IoC部分的主要内容也可以认为是【如何配置Bean】;
这三种配置方式,其本质是一样的,都是告诉Spring IoC容器如何实例化Bean和如何管理Bean;只是,这三种配置方式外在表现形式不一样而已;
目录
(2.3)创建配置文件applicationContext.xml
(2.4)实际测试:创建测试类:SpringApplication
1.内容简介
(1.1)在xml配置文件中,配置Bean(就是对象啦);
(1.2)如何去加载xml配置文件?
2.演示
(2.1)在pom文件中,引入Spring依赖;
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.imooc</groupId>
<artifactId>s2</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.9</version>
</dependency>
</dependencies>
</project>
说明:
(1)这儿可以参考下【Spring IoC容器与Bean管理4:使用XML方式实现Spring IoC预一:Spring IoC初体验一:IoC容器完成【对象的实例化】;】 ;
(2)对于Spring IoC来说,在pom.xml中我们只需要手动引入一个模块:SpringFramework框架中的【spring-context】模块即可;这是因为,当我们引入【spring-context】模块后,其他需要的、所需要依赖的其他模块,maven会自动帮我们引入;
(3)然后,经过一会,在工程扩展的类库的地方,就会看到【由maven引入的,spring-context模块,和,其他需要依赖的组件和模块】:
如上图所示,引入了【aop】,【beans】,【context】,【core】,【expression】,【jcl】这几个模块;这几个模块是构成Spring运行的最基础的支撑模块; 其中,【context】模块就是我们在pom.xml中手动引入的模块; 【aop】,【beans】,【core】,【expression】,【jcl】这几个模块,是maven根据【context】的依赖,自动帮我们引入的;
(4)狭义SpringFramework框架的自带的其他模块介绍:
(2.2)创建【包】和【两个演示用的实体类】
为了能够利用IoC对Apple类的对象进行实例化,就需要在xml配置文件了;
(2.3)创建配置文件applicationContext.xml
applicationContext.xml:这个文件可以起其他名字,只是我们约定俗称起做applicationContext而已;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="apple1" class="com.imooc.spring.ioc.entity.Apple">
</bean>
</beans>
说明:
(1)这儿可以参考下【Spring IoC容器与Bean管理4:使用XML方式实现Spring IoC预一:Spring IoC初体验一:IoC容器完成【对象的实例化】;】 ;
(2)为了,能看到,【其在实例化对象的时候,确实是调用无参构造来实例化的】,所以在Apple类的无参构造中,我们打印了一点东西:
(2.4)实际测试:创建测试类:SpringApplication
SpringApplication:
package com.imooc.spring.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClasspathXmlApplicationContext;
public class SpringApplication {
public static void main(String[] args) {
ApplicationContext context = new ClasspathXmlApplicationContext("classpath:applicationContext.xml");
}
}
说明:
(1)ApplicationContext接口;
(2)这儿可以参考下【Spring IoC容器与Bean管理4:使用XML方式实现Spring IoC预一:Spring IoC初体验一:IoC容器完成【对象的实例化】;】 ;
本篇博客是【通过默认构造方法,也就是无参构造啦】来实例化对象,但是默认构造方法的能力是有限的;很多情况下,我们需要带参构造方法去创建对象;这也就是下一篇博客的内容;