1.使用类构造器实现实例化(bean的自身构造器)

<bean id = "orderService" class="cn.itcast.OrderServiceBean"/>

2.使用静态工厂方法实现实例化

 <bean id = "personService" class = "cn.itcast.OrderFactory" factory-method     = "createOrder"/>
public class OrderFactory{
private static OrderFactory orderFactory = new OrderFactory();
private OrderFactory();
public static OrderFactory createOrder(){
return OrderFactory;
}
}

3.使用实例化工厂方法实现实例化(通过别的实体的bean)

 <bean id = "personServiceFactory" class = "cn.itcast.service.OrderFactory"/>
<bean id = "persionService" factory-bean = "personServiceFactory" foctory-method = "createOrder"/>
public class OrderFactory{
private static OrderService orderService = new OrderService();
private OrderFactory();
public static OrderService createOrderServiceBean{
return OrderService;
} }

  我们通常把负责加载bean的BeanFactory或者ApplicationContext叫做Spring容器。两者都是通过xml配置文件加载bean,ApplicationContext和BeanFacotry相比,主要区别在于BeanFacotry是延迟加载,在调用getBean()的时候才实例化要get的bean。如果Bean的某一个属性无法注入,这时候才会抛出异常;而ApplicationContext默认,在初始化自身的时候就会对所有的bean做实例化,除非对bean设置lazy-init="true",这样有利于检查所依赖属性是否能注入。

  另外,ApplicationContext提供了更多的扩展功能,如对要加载的资源文件的国际化’处理,对BeanPostProcessor的处理,所以在J2EE应用中,通常情况下我们都选择使用ApplicationContext。不管是使用BeanFactory还是ApplicationContext,Spring 默认以singleton的方式初始化bean.

  对于BeanFactory的初始化,通常用下面的代码:

 ClassPathResource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);

  对于ApplicationContext的初始化,通常在web.xml中配置:

 <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:conf/Appcontext.xml
</param-value>
6 </context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

  或者

ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml", "applicationContext-part2.xml"});

  

spring实例化bean的方式的更多相关文章

  1. Spring 实例化bean的方式

    实例化bean的方式有三种: 1.用构造器来实例化 2.使用静态工厂方法实例化 3.使用实例工厂方法实例化 当采用构造器来创建bean实例时,Spring对class并没有特殊的要求, 我们通常使用的 ...

  2. Spring实例化Bean的三种方式及Bean的类型

    1.使用类构造器实例化  [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...

  3. spring IOC容器实例化Bean的方式与RequestContextListener应用

    spring IOC容器实例化Bean的方式有: singleton 在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在. prototype 每次从容器中调用Bean时, ...

  4. spring实例化bean三种方式

    我看了这篇博文<https://www.cnblogs.com/zhanglei93/p/6221546.html>,以及自己实践总结了关于spring实例化bean对象的3种方式. 一. ...

  5. Spring中四种实例化bean的方式

    本文主要介绍四种实例化bean的方式(注入方式) 或者叫依赖对象实例化的四种方式.上面的程序,创建bean 对象,用的是什么方法 ,用的是构造函数的方式 (Spring 可以在构造函数私有化的情况下把 ...

  6. (转)Spring的三种实例化Bean的方式

    http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...

  7. 三种实例化bean的方式

    在spring中有三中实例化bean的方式: 一.使用构造器实例化:(90%通常使用的一个方法) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化. 每种实例化所采用的配置是不一样的: 一. ...

  8. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring实例化Bean的三种方法

    在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 ...

  9. Spring实例化bean的几种方式

    一,通过constructor实例化bean Spring可以实例化各种类型的类,不要求必须是JavaBean类型的类.在XML中配置类如下: <bean id="exampleBea ...

随机推荐

  1. USACO Section 3.3: Home on the Range

    到最后发现是DP题 /* ID: yingzho1 LANG: C++ TASK: range */ #include <iostream> #include <fstream> ...

  2. marquee 笔记

    页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...

  3. Android 调试机制

    Android的调试信息可以根据DDMS进行查看,Logcat日志输出所有的调试信息,为了方便的找到我们需要的打印信息,可以在logcat后面增加过滤器.比如你想查看system.out.printl ...

  4. javascript 一个关于时间排序的算法(一个页面多个倒计时排序)

    上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...

  5. [HIHO1223]不等式(离散化,枚举)

    题目链接:http://hihocoder.com/problemset/problem/1223 这题不难,难点在于小数的处理.可以0.5为步长枚举,也可以扩大偶数倍枚举. /* ━━━━━┒ギリギ ...

  6. [HDOJ5584]LCM Walk(数论,规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 给一个坐标(ex, ey),问是由哪几个点走过来的.走的规则是x或者y加上他们的最小公倍数lcm ...

  7. many to one could not resolve property

    今天在做一个功能的时候 遇到了.一个Could not resolve property 的问题. 配置文件如下: <many-to-one name="user"  cla ...

  8. JQuery操作Ajax

    一.jQuery - AJAX 简介 AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). AJAX 是与服务器交换数据的艺术,它在 ...

  9. HDU 3544 (不平等博弈) Alice's Game

    切巧克力的游戏,想得还是不是太明白. 后者会尽量选前着切后其中小的一块来切,那么先手须尽量取中间来切. So?题解都是这么一句话,不知道是真懂了还是从别人那抄过来的. 后来找到一个官方题解,分析得比较 ...

  10. Kafka中的Message Delivary机制

    学习Kafka的读书笔记,暂未把文章设为翻译类型,因为并非直译文档.水平有限,还请路过高手指正. <1> “最多(发送)一次”(At most once):消息可以丢失但绝不会重新发送:& ...