Spring基于XML的IoC

Maven导入Spring依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.3</version>
</dependency>

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="account" class="com.ttpfx.domain.Account"/>
</beans>

beanfactory 和 ApplicationContext 的区别

beanfactory:在使用对象时创建对象
ApplicationContext:在加载配置文件时创建对象(认情况下)

使用beanfactory:

Resource resource = new ClassPathResource("Beans.xml");
beanfactory beanfactory = new Xmlbeanfactory(resource);
Account account = beanfactory.getBean(Account.class);
System.out.println(account);

使用ApplicationContext:

ClasspathXmlApplicationContext applicationContext = new ClasspathXmlApplicationContext("Beans.xml");
Account account = applicationContext.getBean("account", Account.class);
System.out.println(account);

创建Bean的三种方式

  1. 通过构造方法创建对象
<bean id="account" class="com.ttpfx.domain.Account"/>
  1. 通过普通工厂类的实例方法创建实例:
<bean id="instanceFactory" class="com.ttpfx.factory.InstanceFactory"/>
<bean id="account" factory-bean="instanceFactory" factory-method="getAccount"/>
  1. 通过静态工厂类的静态方法创建实例:
<bean id="account" class="com.ttpfx.factory.StaticFactory" factory-method="getAccount"/>

Bean的作用范围

通过bean标签的scope属性指定其作用域

<bean id="account" class="com.ttpfx.domain.Account" scope="prototype"/>
  • singleton:在Spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,认值
  • prototype:每次调用getBean时创建一个新的实例
  • request:每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境
  • session:同一个HTTP Session共享一个Bean,不同Session使用不同的Bean,仅适用于WebApplicationContext环境
  • global-session:一般用于Portlet应用环境,该作用域仅适用于WebApplicationContext环境

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念