- 注意:在Java中对象也叫做Bean,所以后续文章中用Bean代替对象
- 本节的目的是为了让大家明白Spring这个IoC容器的作用,实际在项目中不会这么麻烦的
一:Sring创建
(1)创建一个Maven项目
(2)添加Spring框架支持
在项目的pom.xml
中添加Spring框架支持,配置如下
- spring-context:spring上下文
- spring-beans:对象管理模块
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
</dependencies>
如果依赖没有下载成功,那么可能是没有配置好镜像源,配置方法如下
- 选择项目设置,然后切换到Maven选项
- 注意右侧选项需要全部勾选
- 检查
User settings file
的setting,xml
文件是否存在,如果不存在或配置错误可复制后面的代码
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="htt p://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven. apache.org/xsd/settings-1.1.0.xsd">
<localRepository>C:\Users\ZhangXing\.m2\repository</localRepository>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
- 最后点击Maven面板重新加载即可
(3)添加启动类
- 该步可选,但是在这里是必须的,因为需要使用一个类来运行Spring框架
在java文件下创建一个启动类
public class App {
public static void main(String[] args) {
}
}
二:存储Bean
(1)创建Bean
Bean就是Java中的一个普通对象
public class User {
public String sayHello(String name) {
return name + "Hello!";
}
}
(2)将Bean注册到Spring中
在创建好的项目中添加Spring配置文件spring-config.xml
,然后将此文件放到resources
目录下
<?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">
</beans>
接下来,继续在配置文件中添加,将刚才的对象注册进去
id
:给bean起的别名(不可重复)class
:要注册的对象(包名+类名)
<bean id="user" class="User"></bean>
三:获取并使用Bean
(1)创建Spring上下文
Spring上下文可以使用ApplicationContext创建。在启动类中写上下面代码
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
// 创建Spring上下文
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
}
}
(2)获取指定Bean
使用ApplicationContext.getBean()
可以获取到指定id
的Bean
- 这就是IoC的本质:不通过new获取对象,直接从容器中取
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
// 创建Spring上下文
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 获取指定Bean
User user = context.getBean("user", User.class);
}
}
(3)使用Bean
当获取到Bean后,就可以调用相应方法使用了
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
// 创建Spring上下文
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 获取指定Bean
User user = (User)context.getBean("user");
// 使用Bean
System.out.println(user.sayHello("ZhangSan"));
}
}
评论区