Spring中IoC的详细介绍

这篇文章主要讲解了“Spring中IoC的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中IoC的详细介绍”吧!

这篇文章主要讲解了“Spring中IoC的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中IoC的详细介绍”吧!

10年的普陀网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整普陀建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“普陀网站设计”,“普陀网站推广”以来,每个客户项目都认真落实执行。

Spring中的IoC:

1)概念:把对象的创建、初始化、销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。2)目的:为了解决多个对象之间的依赖关系。3)原理: 1)通过配置文件(或注解)的方式来描述bean与bean之间的依赖关系。 2)通过动态代理和java的反射机制来实例化bean,同时建立bean之间的依赖关系。 4)spring容器创建对象的3种方式(bean的实例化): 1)使用Spring的IoC创建对象:调用默认的构造函数(默认) 1>指定bean的class属性 2>class需要一个默认的空构造器 <bean id="helloWorld" class="com.jxn.HelloWorld" /> 得到实例对象:HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld"); 2)在Spring中使用工厂模式创建对象: 使用静态工厂方法 1>指定class属性外 2>通过factory-method属性来指定创建bean实例的静态工厂方法 <bean id="helloWorld" class="com.jxn.HelloWorldFactory" factory-method="createInstance"></bean> 注:相当于调用了 HelloWorldFactory.createInstance(); public class HelloWorldFactory { public static HelloWorld createInstance(){ return new HelloWorld(); } } 得到实例对象:HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld"); 使用实例工厂方法 1>定义一个工厂类 2>通过factory-bean属性指定工厂类,通过factory-method属性指定该工厂类的非静态工厂方法 <bean id="helloWorldFactory" class="com.jxn.HelloWorldFactory" /> <bean id="HelloWorld" factory-bean="helloWorldFactory" factory-method="createInstance" /> 注:相当于调用了 new HelloWorldFactory.createInstance(); public class HelloWorldFactory { public HelloWorld createInstance(){ return new HelloWorld(); } } 得到实例对象:HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld"); 3)使用Spring的IoC创建对象 VS 使用工厂模式创建对象 当创建的对象需要修改(eg:新增属性)时: Spring的IoC只需要修改对象对应的类即可。 工厂模式需要修改或添加工厂方法。5)DI(依赖注入):给对象的属性赋值 1)使用属性的setter方法进行注入: 说明:通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即可实现基于setter的依赖注入。 举例: <!-- property是用来描述一个类的属性:直接变量(基本类型、String类型等)用value赋值,引用类型用ref赋值 -->  <bean id="student" class="com.jxn.domain.Student" /> <bean id="person" class="com.jxn.domain.Person"> <!-- 直接变量 --> <property name="name" value="aaa" /> <!-- 引用类型 --> <property name="student" ref="student"> <!-- List --> <property name="lists"> <list> <value>list1</value> <ref bean="student"/> <value>list3</value> </list> </property> <!-- Map --> <property name="map"> <map> <entry key="m1"> <value>map1</value> </entry> <entry key="m2"> <ref bean="student"/> </entry> </map> </property> <!-- Properties --> <property name="properties"> <props> <prop key="key1">value1</prop> <prop key="key2">value2</prop> </props> </property> </bean> 2)使用构造器注入:通过调用带参数的构造器来实现: 说明: 1>如果spring的配置文件的bean中没有<constructor-arg>标签,则调用默认的构造方法 2>如果spring的配置文件的bean中有<constructor-arg>标签,则该元素确定唯一的构造方法,该标签的属性 index  指参数的位置,从0开始 type   指参数的类型,如果不写仍可确定唯一的构造方法,则可以省略type属性 value  给基本类型赋值 ref    给引用类型赋值 举例: <bean id="person" class="com.jxn.domain.Person"> <constructor-arg index="0" type="java.lang.Long" value="1"></constructor-arg> <constructor-arg index="1" value="zhangsan"></constructor-arg> <constructor-arg index="2" ref="student"></constructor-arg> </bean> <bean id="student" class="com.jxn.domain.Student" />

网页名称:Spring中IoC的详细介绍
分享网址:https://www.cdcxhl.com/article26/sgpjjg.html

成都网站建设公司_创新互联,为您提供网站收录品牌网站制作网页设计公司App开发企业网站制作搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站