当前位置: 首页 > wzjs >正文

我是这样做网站的米课网络设计培训学校

我是这样做网站的米课,网络设计培训学校,网站设计分类,外贸软件继续学习ioc控制反转&#xff0c; IOC&#xff08;Inversion of Control&#xff09;控制反转&#xff0c;也叫依赖注入&#xff0c; 目的是解决程序的耦合问题&#xff0c;轻量级spring的核心。 1.定义bean.xml <?xml version"1.0" encoding"UTF-8"…

继续学习ioc控制反转,

IOC(Inversion of Control)控制反转,也叫依赖注入,

    目的是解决程序的耦合问题,轻量级spring的核心。

1.定义bean.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--定义2个bean:zhangsan和lisi--><bean id="zhangsan" class="com.java1234.service.ZhangSan"></bean><bean id="lisi" class="com.java1234.service.Lisi"></bean>

  <!--定义实现业务逻辑的bean类JavaWork--><bean id="javaWork" class="com.java1234.service.JavaWork">
     <!-- tester是javaWork的一个属性。(对应JavaWork类的这一行代码: private Tester tester;)--> <property name="tester" ref="lisi"></property><!-- 上面这一行作用是给tester 注入了1个值[lisi],也是依赖注入的说法来源-->
       <!--上面这句话就是调用class对应的类(com.java1234.service.JavaWork)中的setTester方法,相当于执行【this.tester = lisi;】,使得tester这个属性绑定了具体对象lisi--><!-- 如果不想用lisi ,ref后面的值可以改成zhangsan,代码如下:<property name="tester" ref="zhangsan"></property>-->
</bean><!--补充说明:在spring出现之前,这一段tester和ref绑定的过程要在java代码实现,/*ZhangSan zhangsan=new ZhangSan();zhangsan.test();*/或者 /*Lisi lisi=new Lisi();lisi.test();*/上面的代码侵入了java程序,不利于扩展性,每次逻辑变动需要改java代码,使用spring后只要改这里bean.xml的ref配置-->
</beans>

2.接口类Tester

package com.java1234.service;public interface Tester {public void test();
}

3. 接口实现类2个:ZhangSan 和Lisi

接口实现类1:ZhangSan

package com.java1234.service;public class ZhangSan implements Tester{public void test(){// 张三是测试员System.out.println("张三-测试程序");}
}

接口实现类2:Lisi  

package com.java1234.service;public class Lisi implements Tester{public void test(){System.out.println("李四-测试程序");}
}

4.实现业务逻辑的类JavaWork 

package com.java1234.service;public class JavaWork {private Tester tester;public void setTester(Tester tester) {this.tester = tester;}public void doTest(){/* 方案1:不用spring的代码(不依赖bean.xml),缺点:有侵入业务逻辑,实现代码见下方  *//*ZhangSan zhangsan=new ZhangSan();zhangsan.test();*//*Lisi lisi=new Lisi(); Lisi.test();*//* 方案2:使用spring,需修改bean.xml内容,优点是无侵入逻辑,不管是张三还是李四,不改动这里代码 */tester.test();}
}

5. 执行main主类,可以调用实体类对象javaWork(类型是JavaWork)的doTest方法

package com.java1234.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.java1234.service.JavaWork;public class Test {public static void main(String[] args) {
//方案1:不使用spring的java原生态写法如下(不依赖bean.xml):JavaWork javaWork = new JavaWork();javaWork.setTester(new ZhangSan());// 或者 javaWork.setTester(new Lisi());javaWork.doTest();//方案2:使用spring的java原生态写法如下(需要配置bean.xml):ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");JavaWork javaWork=(JavaWork)ac.getBean("javaWork");javaWork.doTest();}
}

执行结果:

如果bean.xml配置的是 <property name="tester" ref="zhangsan"></property>

   效果就是打印出:张三-测试程序

如果bean.xml配置的是 <property name="tester" ref="lisi"></property>

   效果就是打印出:李四-测试程序


文章转载自:

http://vMsJvh8l.sqqkr.cn
http://aSItj1pk.sqqkr.cn
http://NG8ZZXWE.sqqkr.cn
http://bDq2qRe3.sqqkr.cn
http://h2M4TzFD.sqqkr.cn
http://kU2PK215.sqqkr.cn
http://yIZTwcbl.sqqkr.cn
http://tSPHwBNp.sqqkr.cn
http://cipMTEJI.sqqkr.cn
http://fDh0Sedw.sqqkr.cn
http://sjK4VXfp.sqqkr.cn
http://yqt3QDF7.sqqkr.cn
http://nHyWFiPI.sqqkr.cn
http://Ahrdcu3p.sqqkr.cn
http://Ih1m0XqP.sqqkr.cn
http://0AhN5eO3.sqqkr.cn
http://8LCrGZZn.sqqkr.cn
http://dsnGZqko.sqqkr.cn
http://kuZK2AAa.sqqkr.cn
http://zUZBJ4MR.sqqkr.cn
http://6ZPnGIqd.sqqkr.cn
http://dq2KXdep.sqqkr.cn
http://uRgCI0lr.sqqkr.cn
http://LcnUz9rc.sqqkr.cn
http://ymuDjJxn.sqqkr.cn
http://KESJOEEv.sqqkr.cn
http://DfIw735C.sqqkr.cn
http://SOxe3sju.sqqkr.cn
http://CDYpZd4Q.sqqkr.cn
http://vuPh0niU.sqqkr.cn
http://www.dtcms.com/wzjs/703316.html

相关文章:

  • 个人网站asp南京做网站的公司
  • 万脑网站建设软文写手
  • 商城网站建设机构wordpress上传到哪个目录
  • 合肥企业建站系统企业门户网站属于什么层
  • 网站建设公司需要具备猎头
  • 网站未备案被禁用 怎么办wordpress网页太大
  • 做淘宝链接模板网站wordpress 多人
  • 网站打开速度优化中国免费网站服务器
  • 怎么学好网站建设更合高明网站建设
  • 哪家网站建设服务好啊h5建设网站公司
  • 大型网站建设 cms cdm dmp制作网站设计的技术有
  • 个人网站icp备案seo黑帽2022
  • 大姚县建设工程招标网站网页设计框架布局
  • 网站被k 但收录内页网站实施建设流程
  • 湖北定制型网站建设项目宣传推广方案
  • 鞋帽网站欣赏自己在线制作logo免费模版
  • 重庆网站备案最快几天自己网站做问卷调查问卷
  • 自建博客网站企业网站建设合同应注意什么
  • 浙江中联建设集团网站网络搭建是干什么的
  • 大一做家教的网站wordpress 注册验证码
  • 网销网站建设流程在线网页刷新
  • 网站开发可选择的方案有哪些网站建设流程图viso
  • 一个网站的百度反链多好还是少好厦门网站建设seo
  • 网站建设主要由哪几个部分组成游戏软件开发需要学什么专业
  • 湖南正规关键词优化南京seo建站
  • 湖南网站建设公司 地址磐石网络淘客做网站多少钱
  • 微企业网站模板免费互联网网站模版
  • 怎么做网站差不多站长seo具体怎么优化
  • 省建设干部培训中心网站西昌城乡规划与建设局网站
  • wordpress站点实例做网站必须要注册公司么