spring实例化bean的方式
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的方式的更多相关文章
- Spring 实例化bean的方式
实例化bean的方式有三种: 1.用构造器来实例化 2.使用静态工厂方法实例化 3.使用实例工厂方法实例化 当采用构造器来创建bean实例时,Spring对class并没有特殊的要求, 我们通常使用的 ...
- Spring实例化Bean的三种方式及Bean的类型
1.使用类构造器实例化 [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...
- spring IOC容器实例化Bean的方式与RequestContextListener应用
spring IOC容器实例化Bean的方式有: singleton 在spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在. prototype 每次从容器中调用Bean时, ...
- spring实例化bean三种方式
我看了这篇博文<https://www.cnblogs.com/zhanglei93/p/6221546.html>,以及自己实践总结了关于spring实例化bean对象的3种方式. 一. ...
- Spring中四种实例化bean的方式
本文主要介绍四种实例化bean的方式(注入方式) 或者叫依赖对象实例化的四种方式.上面的程序,创建bean 对象,用的是什么方法 ,用的是构造函数的方式 (Spring 可以在构造函数私有化的情况下把 ...
- (转)Spring的三种实例化Bean的方式
http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...
- 三种实例化bean的方式
在spring中有三中实例化bean的方式: 一.使用构造器实例化:(90%通常使用的一个方法) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化. 每种实例化所采用的配置是不一样的: 一. ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring实例化Bean的三种方法
在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 ...
- Spring实例化bean的几种方式
一,通过constructor实例化bean Spring可以实例化各种类型的类,不要求必须是JavaBean类型的类.在XML中配置类如下: <bean id="exampleBea ...
随机推荐
- USACO Section 3.3: Home on the Range
到最后发现是DP题 /* ID: yingzho1 LANG: C++ TASK: range */ #include <iostream> #include <fstream> ...
- marquee 笔记
页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...
- Android 调试机制
Android的调试信息可以根据DDMS进行查看,Logcat日志输出所有的调试信息,为了方便的找到我们需要的打印信息,可以在logcat后面增加过滤器.比如你想查看system.out.printl ...
- javascript 一个关于时间排序的算法(一个页面多个倒计时排序)
上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...
- [HIHO1223]不等式(离散化,枚举)
题目链接:http://hihocoder.com/problemset/problem/1223 这题不难,难点在于小数的处理.可以0.5为步长枚举,也可以扩大偶数倍枚举. /* ━━━━━┒ギリギ ...
- [HDOJ5584]LCM Walk(数论,规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 给一个坐标(ex, ey),问是由哪几个点走过来的.走的规则是x或者y加上他们的最小公倍数lcm ...
- many to one could not resolve property
今天在做一个功能的时候 遇到了.一个Could not resolve property 的问题. 配置文件如下: <many-to-one name="user" cla ...
- JQuery操作Ajax
一.jQuery - AJAX 简介 AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). AJAX 是与服务器交换数据的艺术,它在 ...
- HDU 3544 (不平等博弈) Alice's Game
切巧克力的游戏,想得还是不是太明白. 后者会尽量选前着切后其中小的一块来切,那么先手须尽量取中间来切. So?题解都是这么一句话,不知道是真懂了还是从别人那抄过来的. 后来找到一个官方题解,分析得比较 ...
- Kafka中的Message Delivary机制
学习Kafka的读书笔记,暂未把文章设为翻译类型,因为并非直译文档.水平有限,还请路过高手指正. <1> “最多(发送)一次”(At most once):消息可以丢失但绝不会重新发送:& ...