Spring框架之控制反转和依赖注入
学Spring框架必须理解控制反转和依赖注入。下面各自举一个例子,来说明控制反转和依赖注入。
IOC(控制反转):应用本身创建和维护的依赖对象;现在交由外部容器(Spring)来创建和维护;这个控制权的转移;
就叫做控制反转。
第一步:配置applicationContextcreateproject.xml和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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="create" class="createObject.CreateHelloWorld" factory-method="create"> </bean> </beans>
<?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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 引用其他配置文件 --> <import resource="createObject/applicationContextcreateproject.xml"/> </beans>
package createObject; public class CreateHelloWorld { //静态工厂 public static HelloWord create(){ return new HelloWord(); } }
package createObject; public class HelloWord { public void hellow(){ System.out.print("hellow spring"); } }
测试类:
package createObject; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class texthell{ public static void main(String[] args) { // TODO Auto-generated method stub //加载配置文件 ApplicationContext context=new ClassPathXmlApplicationContext("applicationcontext.xml"); HelloWord te=(HelloWord) context.getBean("create"); te.hellow(); } }
效果图:
DI(依赖注入):(控制反转的一个实现)在程序运行期间;动态的将依赖对象注入到组件当中(创建对象)new的工作交给spring来做;前提留接口;set get方法
第一步:配置Springapplicationcontext.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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="wanlix" class="com.Test.test"> <property name="name" value="张嘎"/> <property name="speak" value="一天不打黄鼠狼,就憋屈"/> </bean> </beans>
第二步:测试类
package com.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class test { public String name; public String speak; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSpeak() { return speak; } public void setSpeak(String speak) { this.speak = speak; } public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationcontext.xml"); test te=(test) context.getBean("wanlix"); System.out.print(te.getName()+"说:"+te.getSpeak()); } }
效果图:
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 2276292708@qq.com 如果需要转载,请注明出处,谢谢!!
责任重于泰山,任重而道远。