版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 https://blog.csdn.net/matrixbbs/article/details/89002287
1 先上示例
1.1使用STS创建一个空的spring starter project。一般默认情况下,可以看到已经把spring-context依赖导入
对应的pom文件如下
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zfh</groupId>
<artifactId>springIOC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springIOC</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
打开包继承图可见
从图上可以看出spring容器需要的基础包已经在其中
1.2 建包,创建一个Bean,即Hello.java类
package com.fhzheng.demo.bean;
public class Hello {
private String name;
private Integer age;
/**
* 用于业务演示
*/
public void sayHello() {
System.out.println("你好"+name+",你今年"+age+"岁了");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
1.3 然后编写配置文件,加入applicationContext.xml配置文件
注意,该文件置于资源文件目录下
注意,创建过程中,要勾选相应的项,主要是beans
在配置文件中编写和注册 相应的bean,即将Hello组件交给Spring容器来管理
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hello" class="com.fhzheng.demo.bean.Hello" >
<property name="name" value="fhzheng"></property>
<property name="age" value="30"></property>
</bean>
</beans>
1.4 编写测试代码
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringIocApplicationTests {
private ApplicationContext context;
@Before
public void testBefore() {
context = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");
}
@Test
public void testSpringIOCHello() {
// 声明spring容器
// 已经在before中准备妥当
// 用容器来注入一个Hello,即一个bean的实例
Hello hello = (Hello)context.getBean("hello");
// 使用实例的方法
hello.sayHello();
}
然后就可以运行测试了
2 不再通过new的方式来实例bean,而是直接找Spring容器来生成bean实例,就可以直接使用了
以下是运行出来的结果