Spring中的Bean实现的创建三种方式
来源:互联网 发布:润和软件怎么样 编辑:程序博客网 时间:2024/05/20 00:12
Spring中的Bean实现的创建方式
1.调用构造器"new"一个Bean实现
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!-- 采用Set注入的方式依赖 --><bean id="chinese" class="com.jask.spring.Chinese"><property name="meiGou"><ref local="meiGou" /></property></bean><bean id="meiGou" class="com.jask.spring.MeiGou"></bean></beans>
public class Chinese implements Person{private Person meiGou;public Chinese(){System.out.println("Chinese init");}public void say(){meiGou.say();}public void sayBye(){meiGou.sayBye();}public void setMeiGou(MeiGou meiGou){System.out.println("Chinese‘s 依赖关系");this.meiGou = meiGou;}}
public class MeiGou implements Person{private Chinese chinese;public MeiGou(){System.out.println("MeiGou init");}public void say(){System.out.println("MeiGou Say");}public void sayBye(){System.out.println("MeiGou sayBye");}public void setChinese(Chinese chinese){this.chinese = chinese;}}
public class TestMain{public static void main(String[] args){ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");BeanFactory factory = (BeanFactory)ctx;Chinese chinese = (Chinese) factory.getBean("chinese");chinese.say();}}
结果:
Chinese init
MeiGou init
Chinese‘s 依赖关系
MeiGou Say
实例执行顺序:
首先去实现一个Chinese对象的构造器
再去实现依赖的对象MeiGou构造器
然后在去注入依赖关系
最后返回依赖的实现
2.采用静态工厂方法创建Bean
只修改了Spring配置文件
<!-- Bean的静态工厂创建实例 --><bean id="chinese" class="com.jask.spring.Chinese"><property name="meiGou"><ref local="meiGou"/></property></bean><bean id="meiGou" class="com.jask.spring.StaticFactory" factory-method="getPerson"><constructor-arg><value>meiGou</value></constructor-arg></bean>
3.采用实现工厂方法创建Bean
只修改了Spring配置文件
<!-- Bean的实现工厂创建实例 --><bean id="staticFactoryBean" class="com.jask.spring.StaticFactory"></bean><bean id="chinese" class="com.jask.spring.Chinese"><property name="meiGou"><ref local="meiGou"/></property></bean><bean id="meiGou" factory-bean="staticFactoryBean" factory-method="getPerson"><constructor-arg><value>meiGou</value></constructor-arg></bean>
- Spring中的Bean实现的创建三种方式
- spring 创建bean的三种方式.
- spring创建bean的三种方式
- spring的三种bean创建方式
- Spring bean的三种创建方式
- spring创建bean的三种方式
- Spring创建Bean的三种方式
- Spring创建Bean的三种方式
- Spring创建bean 的三种方式
- Spring中bean工厂创建bean的三种方式
- Spring bean三种创建方式
- Spring中创建bean的三种方式
- Spring-6.创建bean的三种方式
- spring学习之---创建Bean的三种方式
- spring详解:bean的三种创建方式
- Spring管理Bean的三种创建方式
- spring管理bean的三种创建方式
- [1] Spring中的Bean实例化的三种方式
- Android开发之适配器ListView
- 仿射变换(Affine Transform)
- 编译OpenCV2.4.3中的OCL模块
- ERROR 1045 (28000): Access denied for user
- Project Euler problem 28
- Spring中的Bean实现的创建三种方式
- ORACLE SQL语句优化技术分析
- readline wrap
- 测试类,梯形,圆,三角形
- HDU 4394 bfs
- 爱情天梯!真爱都是伟大的!
- Spring特点中关于DI,IOC及AOP的理解
- 【Android社区】史上最牛最全android开发知识汇总
- 人们眼中的程序员