Spring中IoC的详细介绍

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

创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为舞钢企业提供专业的成都网站建设、做网站,舞钢网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

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需要一个默认的空构造器
		
		
		
		得到实例对象:HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld");
	
	
	2)在Spring中使用工厂模式创建对象:
	
		使用静态工厂方法
			1>指定class属性外
			2>通过factory-method属性来指定创建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属性指定该工厂类的非静态工厂方法

			
			
			注:相当于调用了 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的依赖注入。
		举例:
			 
			
			
				
				
				
				
				
				
				
				
					
						list1
						
						list3
					
				

				
				
					
						
							map1
						
						
							
						
					
				
				
				
				
					
						value1
						value2
					
				
			
			
	
	2)使用构造器注入:通过调用带参数的构造器来实现:
	
		说明:
			1>如果spring的配置文件的bean中没有标签,则调用默认的构造方法
			2>如果spring的配置文件的bean中有标签,则该元素确定唯一的构造方法,该标签的属性
				index  指参数的位置,从0开始
				type   指参数的类型,如果不写仍可确定唯一的构造方法,则可以省略type属性
				value  给基本类型赋值
				ref    给引用类型赋值
		举例:
			
				
				
				
			
			
			




感谢各位的阅读,以上就是“Spring中IoC的详细介绍”的内容了,经过本文的学习后,相信大家对Spring中IoC的详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享名称:Spring中IoC的详细介绍
新闻来源:http://pwwzsj.com/article/ppeihi.html