spring学习笔记

上传人:oq****t 文档编号:2686745 上传时间:2017-07-26 格式:TXT 页数:24 大小:28.92KB
返回 下载 相关 举报
spring学习笔记_第1页
第1页 / 共24页
spring学习笔记_第2页
第2页 / 共24页
spring学习笔记_第3页
第3页 / 共24页
spring学习笔记_第4页
第4页 / 共24页
spring学习笔记_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《spring学习笔记》由会员分享,可在线阅读,更多相关《spring学习笔记(24页珍藏版)》请在金锄头文库上搜索。

1、Spring 是一个 IOC(DI) 和 AOP 容器框架.IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式在applicationContext.xml文件中通过 bean 节点来配置 bean在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后,才可以从 IOC

2、容器里获取 Bean 实例并使用.ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用 ApplicationContext 而非底层的 BeanFactoryApplicationContext 的主要实现类:从 IOC 容器中获取 Bean:调用 ApplicationContext 的 getBean() 方法HelloWord helloWord = ctx.getBean(HelloWord.class);这种方法基于类型来获取,如果类中有 个 的bean的 称,这种方法将 在合适HelloWord helloWord = (Hel

3、loWord) ctx.getBean(helloWord);这种方法基于Bean的Id来获取,使用 面 的方式Spring 3 种 的方式:通过 setter 方法 Bean 的 的对 器 :通过 方法 Bean 的 的对 ,它 了 Bean 实例在实例化后 可以使用 在Java类中,使用ALT+shift+S 的 的 如果有 个的 , 的currency1后“的类型一,统fi的是applicationContext.xml中fl 面的 个,可以通过index 者类型来 的 面 :可用”的 ,可以通过 value 进行 基 类型其类String 类型都可以取面 的方式可以使用 面 起来 xd

4、用其它 Bean:组应用 “的 Bean 要 作以 应用 “的 . 要使 Bean , 必须在 Bean 配置文件中 对 Bean 的用可以通过 ref 为 Bean 的 器 对 Bean 的用. 者是:bean:合 : List配置 java.util.List 类型的 , 要 , 在 里 一 . 这 可以通过 的 , 通过 对其 Bean 的用. 通过 合 :MapJava.util.Map 通过 , 里可以使用 个 作为 . 个 一个和一个 . 可以将 Map 的和 作为 的 : 使用 key 和 value 来 ; Bean 用通过 key-ref 和 value-ref Proper

5、ties :rootrootcom.mysql.jdbc.Driverjdbc:mysql:/hibernate使用 utility scheme 合:使用 utility scheme 合使用P : 化xml的配置方式XML 配置里的 Bean 动配:Spring IOC 容器可以 动配 Bean. 要做的仅仅是在 的 autowire 里 动配的式byName( 称 动配): 必须将 Bean 的 称和 置的 .bean之 的关:继承和 继承:抽 Bean:抽 bean 被IOC实例化,只 用来被继承,要 abstract=true如果实例化后,统 :ApplicationContext

6、context =new ClassPathXmlApplicationContext(beans-relation.xml);Address address = (Address) context.getBean(address);System.out.println(address);Error creating bean with name address: Bean definition is abstract:bean作用域:scopefi , Spring 只为 个在 IOC 容器里声明的 Bean 创建唯一一个实例, 整个 IOC 容器都 共享该实例:所有后续的 getBean(

7、) 调用和 Bean 用都将返回这个唯一的 Bean 实例.该作用域被称为 singleton, 它是所有 Bean 的fi作用域.1singleton:当一个bean的作用域为singleton, 么Spring IoC容器中只 存在一个共享的bean实例,并所有对bean的请求,只要id与该bean 配,则只 返回bean的 一实例 意:Singleton作用域是Spring中的缺省作用域 要在XML中将bean singleton,可以这配置: 2prototype 原型:一个bean 对应 个对 实例 Prototype作用域的bean 导致在 次对该bean请求 将其 到另一个bea

8、n中, 者以 “的方式调用容器的getBean()方法时都 创建一个新的bean实例 验,对有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用singleton作用域 3request:在一次HTTP请求中,一个bean 对应一个实例; 次HTTP请求将 有各 的bean实例, 它 某个bean 创建而 该作用域仅在基于web的Spring ApplicationContext 形有效 考虑面bean :针对 次HTTP请求,Spring容器 loginAction bean 创建一个 新的LoginAction bean实例, 该loginAction bean

9、实例仅在当前HTTP request 有效,因此可以 要放心的更改所建实例的 状态, 而其 请求中 loginAction bean 创建的实例,将 看到这 特 于某个请求的状态变化 当处理请求结束,request作用域的bean实例将被销毁 4session:在一个HTTP Session中,一个bean 对应一个实例 该作用域仅在基于web的Spring ApplicationContext 形有效 考虑面bean :针对某个HTTP Session,Spring容器 userPreferences bean 创建一个 新的userPreferences bean实例, 该userPref

10、erences bean仅在当前HTTP Session 有效 与request作用域一,你可以 要放心的更改所创建实例的 状态,而别的HTTP Session中 userPreferences创建的实例, 将 看到这 特 于某个HTTP Session的状态变化 当HTTP Sessionfl终被废弃的时候,在该HTTP Session作用域 的bean也 被废弃掉 5global session:在一个 局的HTTP Session中,一个bean 对应一个实例 典型 ,仅在使用portlet context的时候有效 该作用域仅在基于web的Spring ApplicationConte

11、xt 形有效 考虑面bean :global session作用域类似于 准的HTTP Session作用域, 过它仅仅在基于portlet的web应用中才有意 Portlet规 了 局Session的概念,它被所有 某个portlet web应用的各种 的portlet所共享 在global session作用域中 的bean被限 于 局portlet Session的 周期 使用外 文件:Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器, 这个处理器允许用户将 Bean 配置的 容外移到 文件中. 可以在 Bean

12、 配置文件里使用形式为 $var 的变, PropertyPlaceholderConfigurer 从 文件里加 , 并使用这 来替换变.在 文件中使用 $propName,以实现 之 的 用 db.properties文件:user=rootpassword=rootdriverClass=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql:/hibernate5文件中:导 文件:classpath从类路径查找使用外 文件中的 测试:private ApplicationContext ctx= new ClassPathXmlApplicationContex

13、t(applicationContext.xml);Testpublic void test() throws SQLException DataSource dataSource =ctx.getBean(DataSource.class);System.out.println(dataSource.getConnection();spEl”达式语言:Spring ”达式语言 称SpEL:是一个 运行时查询和操作对 图的强大的”达式语言 SpEL 为 bean 的 进行动态 提供了便利 使用spel面 java.math是一个 ,只要提供用于执行任意精度整算法 (BigInteger) 和任

14、意精度小算法(BigDecimal) 的类,一般用于专业的学运算,而java.lang.Math是一个类,类 基 的操作,如 对平方 和三角 使用spEl用类的静态 使用spEl用其 bean使用spEl用其bean的 30000?金领:白领使用spEl运算IOC 容器中 Bean 的 周期Spring IOC 容器对 Bean 的 周期进行管理的过 :通过 器 工厂方法创建 Bean 实例Bean 的初始化方法Spring IOC 容器对 Bean 的 周期进行管理的过 :通过 器 工厂方法创建 Bean 实例Bean 的初始化方法将 Bean 实例传 给 Bean 后置处理器的 postP

15、rocessAfterInitialization方法通过调用静态工厂方法创建 Beanprivate static Map cars= new HashMap();static cars.put(bc, new Car(bc,11111);cars.put(ca, new Car(ca, 1111);/静态工厂方法public static Car getCar(String name)return cars.get(name);通过静态工厂方法配置bean, 意 是配置静态工厂方法实例,而是配置bean实例class : 向静态工厂方法的 类 factory-method: 向静态工厂的方法constructor-arg :如果工厂方法要传 ,要使用该 的value来传 beans-factor

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号