- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring学习笔记IOC 控制反转控制反转:将对象实例化的工作交给Spring做。Spring实例化对象的方式以及在配置文件中的体现:调用默认构造方法实例化对象。bean id=XXXbean class=/ 利用静态工厂方法实例化对象。bean id=XXXbean class=XXXfactoryClass factory-method=/实例工厂方法实例化对象。bean id=XXXfacotry class=/ //先实例化工厂bean id=XXXbean factory-bean=XXXfacotry factory-method=/ 说明:只要出现在spring的配置文件中的Bean Spring都会为其实例化。注意,抽象类是不能实例化的。Spring的单例多例情况分析(spring配置文件中bean的scop属性)由于spring采用登记式单例的方式管理对象,所以由spring实例化的对象默认都是单例的。通过spring配置文件中bean的scop属性,可以实例化多种情况的对象。多种情况包括:单例多例,生命周期等。Spring创建对象的时机单例的情况:默认启动容器就实例化所有的bean可以通过配置文件按需要实例化,在spring的配置文件中有一个属性lazy-init=true/false,当取值为true时只有调用content.getBean()方法时才实例化。否则启动spring时实例化所有的Bean。可以看出该属性默认值为false。 多例的情况:多例时只有一种实例化情况,那就是全部的对象都在content.getBean()时创建。Spring对象的生命周期执行init方法DI 依赖注入依赖注入:给属性赋值。 一个类中的属性都可以采用springDI的方式进行赋值,但是并不是所有的属性都适合赋值(比如有些属性就是需要自己维护)Spring的注入方式通过默认的构造方法,这种方式在配置文件中的体现在bean中没有constructor-arg元素。通过指定构造方法注入,这种方式在配置文件中的体现是bean中有constructor-arg元素。constructor-arg元素中的几种属性:Index 表示属性的位置,从0开始。Type 属性的类型。Value 属性的值.Ref为引用型变量赋值。通过属性(setter方法)注入在spring的配置文件中引入一个bean,并且让这个bean自动装配,那么在引用这个类的地方spring会自动调用他的setter方法为其注入。bean id=xxxXXXclass=XxXxXx autowire=byName///根据名称自动装配。使用注解的方式注入注解的使用方法:导入命名空间。在spring的配置文件中导入 xmlns:context=/schema/context /schema/context /schema/context/spring-context-2.5.xsd引入注解解析器context:annotation-config/context:annotation-configiii.使用@Repository 、@Service、@Controller将bean引入进来。使用@Resource为属性注入。4、注入的过程分析当启动spring容器的时候,spring容器加载了配置文件在spring配置文件中,只要遇到bean的配置,就会为该bean创建对象在纳入spring容器的范围内查找所有的bean,看哪些bean的属性或者方法上加有@Resource找到@Resource注解以后,判断该注解name的属性是否为(name没有写)如果没有写name属性,则会让属性的名称的值和spring中ID的值做匹配,如果匹配成功则赋值如果匹配不成功,则会按照类型进行匹配,如果匹配不成功,则报错如果有name属性,则会按照name属性的值和spring的bean中ID进行匹配,匹配成功,则赋值,不成功则报错关于继承如果spring文件中的某一个bean不想实例化,那么可以可以给该bean加上abstract=”true”属性。如果要让一个bean拥有父类的属性,可以给该bean加上parent=commonDao属性。IOC和DI的意义实现了完全面前接口编程。Spring声明式事物处理声明式事物处理:声明针对的是程序员,意思是由程序员决定哪些方法需要事物,哪些方法不需要事物。事物处理spring根据程序员的声明来做事物处理。目的是让程序员不再关注事物,如图所示:声明事物spring声明式事务处理的步骤 1、搭建环境 2、把dao层和service层的接口和类写完 3、在spring的配置文件中,先导入dataSource 4、测试 5、导
文档评论(0)