`
sungang_1120
  • 浏览: 310080 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

Spring三种实例化bean方式

阅读更多

 

package com.sg.spring.study.day1.create;

public class Session {
	public void save() {
		System.out.println("save session ....");
	}
}

 

package com.sg.spring.study.day1.create;

public class SessionFactory {
	
	public static Session getCurrentSession() {
		return new Session();
	}
}

 

 

一 ,使用默认的无参构造注入:

<bean id="session" class="com.sg.spring.study.day1.create.Session"/>

 

二 ,使用静态工厂方法注入:

<bean id="session" class="com.sg.spring.study.day1.create.SessionFactory" 
		factory-method="getCurrentSession"/>

 三,使用工厂实例方法注入:

<bean id="sessionFactory" 
		class="com.sg.spring.study.day1.create.SessionFactory"/>
<!--此处的class属性 可省略 class="com.sg.spring.study.day1.create.Session" -->
<bean id="session" factory-bean="sessionFactory" 
		factory-method="getCurrentSession"/>

 

测试 :

package com.sg.spring.study.day1.create;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {
	@Test
	public void test1() {
//		Resource resource = new ClassPathResource("application.xml");
//		BeanFactory factory = new XmlBeanFactory(resource);
		
		ApplicationContext ctx = new ClassPathXmlApplicationContext("application.xml");
		Session session = ctx.getBean("session", Session.class);
		session.save();
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics