spring企业开发

上传人:jiups****uk12 文档编号:57180936 上传时间:2018-10-19 格式:PPT 页数:124 大小:854.50KB
返回 下载 相关 举报
spring企业开发_第1页
第1页 / 共124页
spring企业开发_第2页
第2页 / 共124页
spring企业开发_第3页
第3页 / 共124页
spring企业开发_第4页
第4页 / 共124页
spring企业开发_第5页
第5页 / 共124页
点击查看更多>>
资源描述

《spring企业开发》由会员分享,可在线阅读,更多相关《spring企业开发(124页珍藏版)》请在金锄头文库上搜索。

1、北京传智播客教育 ,Spring2.5企业开发,讲师:冯威,北京传智播客教育 ,第一章 开始spring之旅,北京传智播客教育 ,Spring介绍,Spring是一个非常活跃的开源框架;它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发. Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring,北京传智播客教育 ,Spring模块,北京传智播客教育 ,控制反转(IOC),IOC就是 Inversion of Control public class Girl private Boy b

2、oy =new Boy();public void kiss() System.out.println(boy.getBoyObject(); boy是在应用内部创建及维护的。所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性。,北京传智播客教育 ,依赖注入(Dependency Injection),当我们把依赖对象交给外部容器负责创建,那么Girl类可以改成如下:public class Girl private Boy boy;public v

3、oid kiss() System.out.println(boy.getBoyObject(); 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。,北京传智播客教育 ,IOC和DI在spring中的实现,案例:,北京传智播客教育 ,使用Spring需要的jar,到http:/www.springsource.org/download下载spring,然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下distspring.jar libjakarta-commonscommons-logging.jar 如果使用了切面编程(AOP),还需要下列jar文件 li

4、b/aspectj/aspectjweaver.jar和aspectjrt.jar lib/cglib/cglib-nodep-2.1_3.jar 如果使用了JSR-250中的注解,如Resource/PostConstruct/PreDestroy,还需要下列jar文件 libj2eecommon-annotations.jar注:JSR(Java 规范请求)是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR(Java 规范请求),以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准,北京传智播客教育

5、 ,spring的配置文件模版,.该配置模版可以从spring的参考手册或spring的例子中得到。配置文件的取名可以任意,文件可以存放在任何目录下,但考虑到通用性,一般放在类路径下。,北京传智播客教育 ,实例化spring容器,实例化Spring容器常用的两种方式:方法一: 在类路径下寻找配置文件来实例化容器 ApplicationContext ctx = new ClassPathXmlApplicationContext(new String“beans.xml“); 可以在整个类路径中寻找xml文件* 通过这种方式加载。需要将spring的配置文件放到当前项目的classpath路径

6、下* classpath路径指的是当前项目的src目录,该目录是java源文件的存放位置。方法二: 在文件系统路径下寻找配置文件来实例化容器 ApplicationContext ctx = new FileSystemXmlApplicationContext(new String“d:beans.xml“);Spring的配置文件可以指定多个,可以通过String数组传入。,北京传智播客教育 ,从spring容器中得到bean,当spring容器启动后,因为spring容器可以管理bean对象的创建,销毁等生命周期,所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bea

7、n对象。从容器获取bean对象的代码如下:ApplicationContext ctx=new ClassPathXmlApplicationContext(“beans.xml“);Girl girl =(Girl)ctx.getBean(“girl“);,北京传智播客教育 ,为何要使用Spring,至少在我看来,在项目中引入spring立即可以带来下面的好处 降低组件之间的耦合度,实现软件各层之间的解耦。可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。容器提供单例模式支持,开发人员不再需要自己编

8、写实现代码。容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。,Controller,Service,DAO,北京传智播客教育 ,使用Spring的好处,当使用spring时,我们可以使用容器提供的众多服务,北京传智播客教育 ,第二章 装配Bean,北京传智播客教育 ,三种实例化bean的方式,1.使用类构造器实例化(默认无参数)2.使用

9、静态工厂方法实例化(简单工厂模式)public class PersonServiceFactory public static PersonService createPersonService()return new PersonServiceImpl(); 3.使用实例工厂方法实例化(工厂方法模式):public class PersonServiceFactory public PersonService createPersonService()return new PersonServiceImpl(); ,北京传智播客教育 ,Bean的作用域,.singleton(默认值) 在每

10、个Spring IoC容器中一个bean定义只有一个对象实例(共享)。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:.prototype 允许bean可以被多次实例化(使用一次就创建一个实例) .request .session .global session(Portlet规范将portlet定义为一种“基于Java技术的web组件,由处理请求和

11、生成动态内容的portlet容器管理”),北京传智播客教育 ,指定Bean的初始化方法和销毁方法,Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法。,当bean被载入到容器的时候调用setup,当bean从容器中删除的时候调用teardown(scope= singleton有效),北京传智播客教育 ,依赖注入,使用构造器注入 使用属性setter方法注入 使用Field注入(用于注解方式)注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法

12、预见最终的装配结果。1.手工装配依赖对象 2.自动装配依赖对象,北京传智播客教育 ,依赖注入-手工装配,手工装配依赖对象,在这种方式中又有两种编程方式* 在xml配置文件中,通过在bean节点下配置* 在java代码中使用Autowired或Resource注解方式进行装配,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖元素的子元素指明了使用它们的set方法来注入。可以注入任何东西,从基本类型到集合类,甚至是应用系统的bean。,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖* 简单bean配置配置bean的简单属性,基本数据

13、类型和String。,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖 * 引用其它bean,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖* 内部bean这种方式的缺点是你无法在其它地方重用这个personClass实例,原因是它是专门为personService而用。,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖* 装配集合若bean的属性是集合类型,按如下处理:A、装配List和数组:,obj1obj2,list1list2,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过set

14、ter方法注入依赖* 装配集合B、 装配set:set使用方法和list一样,不同的是对象被装配到set中,而list是装配到 List或数组中装配。,set1set2,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖* 装配集合C、 装配map:map中的的数值和以及的一样,可以使任何有效的属性元 素,需要注意的是key值必须是String的。,map01map02,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过setter方法注入依赖 * 装配集合D、装配Properties:,prop1prop2,北京传智播客教育 ,依赖注入-手工装配-XML方

15、式,通过setter方法注入依赖*装配集合E、设置null:,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过构造函数注入依赖通过参数的顺序:,张三56,北京传智播客教育 ,依赖注入-手工装配-XML方式,通过构造函数注入依赖 通过参数的类型:,56张三,北京传智播客教育 ,依赖注入-手工装配注解方式,. 在java代码中使用Autowired或Resource注解方式进行装配的前提条件是。1、引入context命名空间 需要在xml配置文件中配置以下信息:2、在配置文件中添加context:annotation-config标签这个配置隐式注册了多个对注释进行解析处理的处理器 AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor, PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor注: Resource注解在spring安装目录的libj2eecommon-annotations.jar,

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

最新文档


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

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