Spring_IOC

IOC容器简介

什么是容器?

在java里的类,在Spring中都被称作Bean,容器是用来读取Bean的定义、管理对象的初始化和生产、以及对象之间的依赖关系。同时容器是用来装载对象,描述对象之间的关系。

IOC容器主要由BeanFactory、ApplicationContext两个接口实现。实际开发中,用后者比较多。AppliacationContext继承BeanFactory接口。它除了有BeanFactory的功能之外,还有如下功能:

  1. 资源访问
  2. 对国际化的支持
  3. 对时间的支持

BeanFactory的常用方法:

  1. ObjectgetBean(String name):根据Bean标识获得Bean实例(常用)
  2. ObjectgetBean(String name , ClassrequiredType):根据Bean标识获得Bean实例,并转换为指定的类型
  3. boolean containsBean(String name):判断当前BeanFactory中是否包含该Bean
  4. boolean isSingleton(String name):判断当前的Bean的scope是否是singleton
  5. ClassgetTyoe(String name):获得当前Bean的类型
  6. String[] getAliases(String name):获得当前bean的别名

BeanFactory的实现类

   beanFactory的实现类有很多最常用的是—xmlBeanFactory

BeanFactory的实例化

1 Resource resource = new FileSystemResource("bean.xml");
2 
3 BeanFactory factory = new XmlBeanFactory(resource);
4 
5 ClassPathResource resource = new ClassPathResource("bean.xml");
6 
7 BeanFactory factory = new XmlBeanFactory(resource);

ApplicationContext的实现类

ClassPathXmlApplicationContext(常用)

FileSystemXmlApplicationContext

XmlWebApplicationContext

Bean的定义标识和别名

Bean的实例化 就是取代new实例化对象,spring中不再使用new

默认的构造方法、静态工厂方法、工厂类的工厂方法

Bean的scope也就是其作用域的意思

Singleton

Prototype

Request

Session

globalsession

一、IOC简单实例

首先的创建spring工程,如果用idea的话,会自动加载一些spring jar文件。

新建Person类

 1 package com.feimao.IOC.test;
 2 
 3 public class Person {
 4     private String name;
 5     private int age;
 6 
 7     public String getName() {
 8         return name;
 9     }
10 
11     public int getAge() {
12         return age;
13     }
14 
15     public void setName(String name) {
16         this.name = name;
17     }
18 
19     public void setAge(int age) {
20         this.age = age;
21     }
22 }

创建Tester测试类

 1 package com.feimao.IOC.test;
 2 
 3 import org.springframework.beans.factory.BeanFactory;
 4 import org.springframework.beans.factory.xml.XmlBeanFactory;
 5 import org.springframework.core.io.ClassPathResource;
 6 import org.springframework.core.io.Resource;
 7 
 8 
 9 public class Tester {
10     public static void main(String[] args){
11         Resource r = new ClassPathResource("beans.xml");
12         BeanFactory factory = new XmlBeanFactory(r);
13         Person per = (Person) factory.getBean("per");
14         System.out.println(per.getName());
15         System.out.println(per.getAge());
16     }
17 }

创建beans.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "_//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"
 3         >
 4 <beans>
 5     <bean id = "per" class = "com.feimao.IOC.test.Person">
 6         <property name = "name" value = "feimao"/>
 7         <property name = "age" value = "28"/>
 8     </bean>
 9 
10 </beans>

测试结果如下图:

猜你喜欢

转载自www.cnblogs.com/feimaoyuzhubaobao/p/10018104.html