目录
1.创建Spring项目
1.1创建Maven类
1.2添加Spring支持框架
1.3添加启动类
2.存储Bean对象
2.0 spring项目中添加配置文件(第一次)
2.1创建Bean
2.2把Bean注册到容器中
3.获取并使用Bean对象
3.1创建上下文
3.2获取指定Bean对象
getBean()方法 --> 获取什么,得到什么
3.2.1.使用bean name获取
3.2.2使用bean type获取
3.2.3使用bean name和类型获取
3.3使用Bean
4.ApplicationContext和BeanFactory有什么区别
1.相同点
2.不同点
1.创建Spring项目
1.1创建Maven类
1.2添加Spring支持框架
pom.xml中添加
<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>
1.3添加启动类
public class APP {
public static void main(String[] args) {
}
}
2.存储Bean对象
2.0 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">
</beans>
2.1创建Bean
public class User {
public void func(String name){
System.out.println(name);
}
}
2.2把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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userinfo" class="com.beans.User"></bean>
</beans>
3.获取并使用Bean对象
3.1创建上下文
ApplicationContext context=
new ClassPathXmlApplicationContext("spring-config.xml");
3.2获取指定Bean对象
传统的代码:构造方法改变,当前类也要改变
User user=new User();
getBean()方法 --> 获取什么,得到什么
3.2.1.使用bean name获取
如果userinfo为null,会出错
User user= (User) context.getBean("userinfo");
3.2.2使用bean type获取
如果被注册了多次,就会出错
User user=context.getBean(User.class);
3.2.3使用bean name和类型获取
比第一种更健壮
User user=context.getBean("userinfo",User.class);
3.3使用Bean
user.func("张三");
第二种:
还可以使用BeanFactory
BeanFactory factory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
User user= (User) factory.getBean("userinfo");
user.func("张三");
4.ApplicationContext和BeanFactory有什么区别
1.相同点
都实现了从容器中获取Bean,都提供了getBean方法
2.不同点
1.ApplicationContext属于BeanFactory子类.BeanFactory提供了基础访问Bean的方法,ApplicationContext除了用于父类BeanFactory的所有功能外,还有新的方法实现
2.性能:BeanFactory要加载Bean,ApplicationContext是饿汉方法,创建时,把所有Bean都加载