加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

入门一:依赖注入

发布时间:2020-05-23 16:11:14 所属栏目:程序设计 来源:互联网
导读:前言:前几天看一篇文章,大意是说应该为自己写一本书,通过写书,你会对某一问题理解的更全面,更透彻。想了几天,决定把自己学习spring的过程记录下来,看似简单的几行代码,写成一篇文章,还真费了不少时间。以前学习的时候对照着书敲代码,输出结果就感觉

前言:前几天看一篇文章,大意是说应该为自己写一本书,通过写书,你会对某一问题理解的更全面,更透彻。想了几天,决定把自己学习spring的过程记录下来,看似简单的几行代码,写成一篇文章,还真费了不少时间。以前学习的时候对照着书敲代码,输出结果就感觉OK,写这篇文章的时候整体的轮廓逐渐清晰,有了全面的认识,书中许多页说明的内容精炼为几句话。

1环境准备

1.1下载springspring-framework-3.2.2.RELEASE-dist

解压到路径:spring-framework-3.2.2.RELEASE

1.2新建JAVA项目

1.3导入相关JAR包

1.3.1spring包

spring-core-3.2.2.RELEASE.jar

spring-beans-3.2.2.RELEASE.jar

1.3.2log包,spring的日志使用了log4j,需要导入相关包。

log4j-1.2.8.jar.jar

commons-logging-1.0.4.jar

commons-logging-api-1.1.jar

2第一个项目

说明:SPING的第一个功能,IOC(控制反转)或DI(依赖注入)

MartinFowler在2004年的一篇论文中提到:控制的什么方面被反转了?他总结说是获得依赖对象的方式反转了。有点抽象,先看代码再理解。

2.1需求:向控制台输出:某人说:你好,spring!

2.2相关程序

2.2.1接口:IHello.java

2.2.2实现类:CHello.java

2.3.3spring配置文件:hello.xml

2.3.4应用类:HelloAppSpring.java

3实现代码

3.1接口:IHello.java

packagecuigh.spring.ioc.hello;

/*

*功能:定义一个接口,与实现分离,业务逻辑在接口中定义,在实现类中实现。

**/

publicinterfaceIHello{

/*

*功能:某人说:你好,spring!

*参数:某人

*返回:无

**/

publicvoidsayHello(Stringname);

}

3.2实现类:CHello.java

packagecuigh.spring.ioc.hello;

/*

*功能:实现接口IHello功能。

**/

publicclassCHelloimplementsIHello{

/*

*功能:向控制台输出一句话,某人说:你好,spring!

*参数:某人

*返回:无

**/

@Override

publicvoidsayHello(Stringname){

System.out.println(name+"说:你好,spring!");

}

}

3.3spring配置文件:hello.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!--说明:

1实现类定义

2容易出错的地方为拼写错误,建议采用复制、粘贴,避免不必要的错误

-->

<beanid="hello"

class="cuigh.spring.ioc.hello.CHello">

</bean>

</beans>

3.4应用类:HelloAppSpring.java

packagecuigh.spring.ioc.hello;

importorg.springframework.beans.factory.BeanFactory;

importorg.springframework.beans.factory.xml.XmlBeanFactory;

importorg.springframework.core.io.FileSystemResource;

importorg.springframework.core.io.Resource;

@SuppressWarnings("deprecation")

publicclassHelloAppSpring{

publicstaticvoidmain(String[]args)throwsException{

//使用步骤:1构造一个Resource对象,参数为配置文件,本例中为:hello.xml

StringfileName=System.getProperty("user.dir")+"bincuighspringiochello"

+"hello.xml";

Resourceresource=newFileSystemResource(fileName);

//使用步骤:2获得BeanFactory

BeanFactoryfactory=newXmlBeanFactory(resource);

//使用步骤:3通过Beanfactory获得实现类的实例,本例中为cuigh.spring.ioc.hello.CHello

//相当于:IHellohello=newcuigh.spring.ioc.hello.CHello();

IHellohello=(IHello)factory.getBean("hello");

//用步骤:4调用业务方法,本例中为sayHello("张三")

hello.sayHello("张三");

}

}

总结:

在HelloAppSpring.java中依赖的类cuigh.spring.ioc.hello.CHello通过

SPRING注入。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读