spring三种实例化bean的方式
1构造函数实例化
2静态工厂方法实例化
3实例工厂方法实例化
service接口:
package service;
public interface PersonService {
public void save();
}
PersonServiceBean:
package service.impl;
import service.PersonService;
public class PersonServiceBean implements PersonService {
public void save(){
System.out.println("我是save()方法");
}
}
PersonServiceBeanFactory:
package service.impl;
public class PersonServiceBeanFactory {
/*
* 静态工厂方法
*/
public static PersonServiceBean createPersonServiceBean(){
return new PersonServiceBean();
}
/*
* 实例工厂方法
*/
public PersonServiceBean createPersonServiceBean2(){
return new PersonServiceBean();
}
}
applicationContext.xml
<?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-3.1.xsd"> <!-- 默认构造方法 -->
<bean id = "personService" class = "service.impl.PersonServiceBean"></bean> <!-- 静态工厂方式 -->
<bean id = "personService2" class = "service.impl.PersonServiceBeanFactory"
factory-method = "createPersonServiceBean"></bean> <!-- 实例工厂方式 -->
<bean id = "personServiceFactory" class = "service.impl.PersonServiceBeanFactory"></bean>
<bean id = "personService3" factory-bean = "personServiceFactory"
factory-method = "createPersonServiceBean2"></bean> </beans>
测试类:
package test; import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import service.PersonService;
import service.impl.PersonServiceBean; /**
* @ClassName: FirstTest
* @Description: 测试实spring三种实例化方式
* @author 无名
* @date 2016-02-10
* @version 1.0
*/
public class FirstTest
{
@Test
public void testCreateBean(){
String conf = "applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf); //利用构造器来实例化
PersonService ps = ac.getBean("personService",PersonServiceBean.class);
ps.save(); //利用静态工厂方法
PersonService ps02 = (PersonService)ac.getBean("personService2");
ps02.save(); //实例工厂方法
PersonService ps03 = (PersonService)ac.getBean("personService3");
ps03.save(); }
}
spring三种实例化bean的方式的更多相关文章
- (转)Spring的三种实例化Bean的方式
http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...
- 三种实例化bean的方式
在spring中有三中实例化bean的方式: 一.使用构造器实例化:(90%通常使用的一个方法) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化. 每种实例化所采用的配置是不一样的: 一. ...
- Spring三种实例化Bean的方法
1.实例化bean的三种方法:(1) 构造器<!-- 体验1 --><bean id="personService" class="com.persia ...
- Spring第四弹—–Spring的三种实例化bean的方式
1.使用类构造器实例化 1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 2. ...
- Spring中四种实例化bean的方式
本文主要介绍四种实例化bean的方式(注入方式) 或者叫依赖对象实例化的四种方式.上面的程序,创建bean 对象,用的是什么方法 ,用的是构造函数的方式 (Spring 可以在构造函数私有化的情况下把 ...
- Spring中三种配置Bean的方式
Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...
- spring IOC容器实例化Bean的方式与RequestContextListener应用
spring IOC容器实例化Bean的方式有: singleton 在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在. prototype 每次从容器中调用Bean时, ...
- Spring —— 三种配置数据源的方式:spring内置、c3p0、dbcp
01.Spring内置数据源配置Class:DriverManagerDataSource全限定名:org.springframework.jdbc.datasource.DriverManagerD ...
- Spring入门学习(二)三种实例化bean的方法
前面的哪一种就是通过构造函数来实例化对象 下面我们可能用到工厂方法来视力话对象,这样我们的配置文件又该怎么配置呢 <bean name="service2" class=&q ...
随机推荐
- Ubuntu 安装 fcitx 输入法
fcitx 和 ibus一样都是输入法框架.下面介绍ubuntu下安装fcitx输入法. 1.先卸载系统中的输入法 2.安装. 增加ppa源:sudo add-apt-repository ppa:f ...
- Android 中的 WebView实现 Html5 标签网页加载
自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并 ...
- (学习网址)Python 自动化测试
1.Python自动化测试地址 http://www.wtoutiao.com/author/python-selenium.html 2.unittest参考网址: 1)python自动化测试报告H ...
- 第三十四章 metrics(2)- 搭建metrics平台
一.基本架构图 1.整个架构组件: java客户端 dropwizard-metrics:springboot.hystrix的metric体层使用了这个,所以我们需要自己封装向statsd发包的方法 ...
- AngularJS学习---更多模板(More Templating) step 8
1.切换分支 amosli@amosli-pc:~/develop/angular-phonecat$ git checkout step- #切换分支 amosli@amosli-pc:~/deve ...
- python 写文件,utf-8问题
写文件报数据. 同样的编码. 含中文字段的输出文件 编码为utf-8 无中文的却是asc import codecstxt = u”qwer”file=codecs.open(“test”,”w”,” ...
- EF 6 for mysql
1. NuGet安装 MySql.Data.MySql.Data.Entity 2.安装Entity Framework 6 Tools for Visual Studio 2012 & 20 ...
- zz---Tomcat服务器下部署项目几种方式
http://blog.sina.com.cn/s/blog_550281c60101hvrs.html 一.静态部署1.直接将web项目文件件拷贝到webapps 目录中 Tomcat的We ...
- 《深入理解Spark:核心思想与源码分析》一书正式出版上市
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- php中英文截取无乱码 包括全角下的字符
符合UTF-8下,如果GBK下 改为 $content .= $str[$sing].$str[$sing+1]; $sing += 3; 改为 $sing += 2; /** ...