Spring学习笔记(超详细)

本文适合已学人士,仅供复习参考。全程手打,纯TXT,无代码参考,特告知
笔记网盘链接,新页面导航栏有地址和提取码
一、 Ioc:控制反转

	1、IOc是一个概念,一个思想。用来指导我们如何创建、管理、使用对象。
		控制:控制对象的创建,属性的赋值,依赖关系的管理,以及控制对象从创建到销毁的整个生命周期。
		反转:把开发人员在代码中创建的对象的权限转移给代码之外的容器(spring)实现,由容器实现对对象的创建和管理。
		正转:在源代码中,有开发人员,new出构造方法创建对象
	
	Ioc:简单来说是由容器(spring)来创建对象,而我们来使用创建好的对象。spring可以创建和管理对象,管理依赖关系。
	spring可以看作是一个工厂,负责生产java对象。
	
	2、使用Ioc思想的技术:servlet、fileter、listener
	
	3、Ioc技术的实现
		1)、DL依赖查找
		2)、DI依赖注入
			只需在代码中提供要使用的对象名称,对象如何创建、赋值则不需要考虑,由spring容器来完成
			spring使用的DI技术实质上是使用反射机制来完成的。spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,
			然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.

			注入方式:   1.set方式注入    2.构造方法注入   3.字段注入
			注入类型:   1.值类型注入      2.引用类型注入

			好处: 

			1.降低组件之间的耦合度,实现软件各层之间的解耦.

			2.可以使容器提供众多服务如事务管理消息服务处理等等。当我们使用容器管理事务时,开发人员就不需要手工 控制事务,也不需要处理复杂的事务传播

			3.容器提供单例模式支持,开发人员不需要自己编写实现代码.

			4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能

			5.容器提供众多的辅佐类,使这些类可以加快应用的开发.如jdbcTemplate HibernateTemplate
	4、ApplicationContext & BeanFactory区别
	
		BeanFactory接口
		(1) spring的原始接口,针对原始接口的实现类功能较为单一
		(2)BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象


		ApplicationContext接口
		(1)每次容器启动时就会创建容器中配置的所有对象
		(2)提供了更多功能
		(3)从类路径下加载配置文件: ClassPathXmlApplicationContext
		从硬盘的绝对路径下加载配置文件:FileSystemXmlApplication

		 

	5、spring配置详解
	
		5.1、元素属性
		    bean元素:使用该元素描述需要spring容器管理对象
		    name属性:给被管理的对象起个名字,获得对象时getBean("name值")
		    class属性:被管理对象的完整类名
		    id属性:与name属性一模一样,名称不可重复,不能使用特殊字符

			name和id之间的一些注意点:
			1、配置两个相同的 id 或者 name 都不能通过。
			2、如果既配置了 id ,也配置了 name ,则两个都生效。如果id和name都没有指定,则用类全名作为name,如<bean class="com.stamen.BeanLifeCycleImpl">,
				则可以通过getBean("com.stamen.BeanLifeCycleImpl")返回该实例。
			3、如果配置基本类的时候,注解和配置文件都使用的时候,注解和配置文件中 name 相同的时候, 则两个冲突,配置文件生效。
			      如果配置基本类的时候,注解和配置文件都使用的时候,注解和配置文件中 name 不相同的时候, 则两个不冲突,都能够生效。
			
		5.2、bean元素的装配
			(1)、bean的默认装配
				Spring调用bean类的无参构造方法,创建具体的实现类
			(2)、bean的作用域:bean对象的存在范围与可见性
				当Spring创建一个bean的实例时不仅可以完成bean的实例化,还可以通过scope属性为bean实例指定作用域范围
				
				【1】singleton:单例模式。即在Spring容器中,使用singleton定义的bean对象的是单例的。默认为单例模式
					创建时间:Spring容器被创建的时候被创建
				【2】prototype:原型模式。即在每次使用getBean方法获取到的同一个bean的实例都是一个新的实例
					创建时间:被调用的时候被创建
				【3】request:对于每次HTTP请求,都将会产生一个不同的Bean对象
				【4】session:对于每个不同的HTTP session,都将会产生一个不同的Bean实例
					注意:对于scope的值request、session只有在Web应用中使用Spring时,该作用域才有效
					
	6、Spring的注入方式(di依赖注入,注入给属性赋值)
	
		6.1、 注入方式:   1、使用xml中的标签和属性(set注入) 2、使用注解
			注入类型:   1.值类型注入      2.引用类型注入
				设值注入:Spring调用类的set方法,完成赋值,最为常用
				构造注入:Spring调用类的有参构造方法完成注入
				简单类型:Java的String类型和基本数据类型
				
		6.2、简单类型set注入
			语法格式:
			 <bean>
			 <property name = "属性名" value = "属性值" />
			 ····
			 ····
			 </bean>
			注意:无论是何种简单类型的属性值都在双引号里
			
		6.2、引用类型set注入
			引用类型set设值注入语法格式:使用ref属性来声明要引用的对象
				<bean>
	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值