spring入门基础课件

上传人:飞*** 文档编号:56950846 上传时间:2018-10-17 格式:PPT 页数:140 大小:733KB
返回 下载 相关 举报
spring入门基础课件_第1页
第1页 / 共140页
spring入门基础课件_第2页
第2页 / 共140页
spring入门基础课件_第3页
第3页 / 共140页
spring入门基础课件_第4页
第4页 / 共140页
spring入门基础课件_第5页
第5页 / 共140页
点击查看更多>>
资源描述

《spring入门基础课件》由会员分享,可在线阅读,更多相关《spring入门基础课件(140页珍藏版)》请在金锄头文库上搜索。

1、第 一 章,Spring 简介,2,目标,理解什么是Spring 理解Spring的用途,3,Spring简介,Spring是一个开源框架,它的目的是为了简化企业级系统开发而诞生的 Spring从小里说,是个容器,往大里说,就是个框架 Spring是轻量级的,它的Jar包只有1M多一点,而且,它是非侵入式的:你一般不需要在你的类里import它的包,4,理解容器与框架,什么是容器,请回忆Servlet,Web容器,Servlet A,Servlet B,5,理解容器与框架,什么是容器,请回忆Servlet,Web容器,Servlet A,Servlet B,Servlet A,容器外部的Ser

2、vlet 无法使用,只有这个Servlet由容器管理,它才能被客户端调用,然后由容器负责实例化、初始化、销毁这个Servlet,6,那么什么是框架,Web容器,Servlet A,客户端,每次请求和响应,都有些重复的事情要做,比如:国际化、日志、事务处理、异常处理、验证、自动处理请求参数等等,7,那么什么是框架,Web容器,Servlet A,客户端,除此之外,应用程序里还需要经常访问一些服务,每种服务的访问方式、方法是不一样的,消息服务,DB,Web Service,LDAP,8,Web容器,Servlet A,Spring框架,这就是框架,业务逻辑实现 A,客户端,消息服务,DB,Web

3、Service,LDAP,9,Framework的定义,框架不仅要负责管理某些Bean的生命周期(容器的功能),还需要负责搭建某些基础设施(那些通用的部分) 例如:Struts能够称之为一个框架,是因为它负责管理Action ActionForm ActionForward这些对象的生命周期;另外它提供了国际化、异常处理、自动包装表单请求、验证等通用的功能 Hibernate也可以称之为一个框架,因为它维护持久化对象的生命周期,持久化对象的通用增删改查方法,10,Spring既是容器也是框架,由Spring负责业务逻辑 A 对象的实例化、初始化、服务(被调用)等,这是Spring作为容器的职责

4、 Spring将大多数可重用、与业务逻辑无关的功能能够自行或交由其他组件完成、这是它作为一个框架的职责,11,Spring与其它容器的不同,Spring框架,业务逻辑实现 A,业务逻辑类 A 是POJO,不需要实现特殊接口,也不需要继承基类。因此在容器外也是可用的,12,Spring与其它框架的不同,比如将Spring与我们刚学习的Struts框架,Hibernate框架相对比,他们的不同之处在于: Spring还可以集成其它框架,它是一个“大”框架 Spring是专注于企业应用的框架,它所涉及的领域非常之广泛 Struts只是专注于实现Web应用程序开发的MVC部分 Hibernate只是专

5、注于数据持久层的部分,13,Web容器,Servlet A,Spring框架,Spring可以集成Struts,业务逻辑实现 A,客户端,消息服务,DB,Web Service,LDAP,日志,事务处理,异常处理,Struts框架,14,Web容器,Servlet A,Spring框架,Spring可以集成Hibernate,业务逻辑实现 A,客户端,消息服务,DB,Web Service,LDAP,日志,事务处理,异常处理,Struts框架,Hibernat框架,15,Hello,Spring,创建Spring工程的步骤 添加 spring.jar commons-logging.jar l

6、og4j.jar log4j.properties 编写接口 编写实现类1,实现类2 编写配置文件 测试,16,Log4j配置简介,log4j.properties的位置 log4j的日志级别:DEBUG,INFO,WARN,ERROR 程序代码中指定日志信息的级别,根据配置文件,将不同级别的日志信息输出到文件或是控制台上,17,Log4j配置简介,log4j.rootLogger=WARN, CONSOLE, FILElog4j.appender.CONSOLE =org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=or

7、g.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d %p %c - %m%nlog4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=file.log log4j.appender.FILE.Append=false log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.Convers

8、ionPattern=%d %p %c - %m%n,布局,布局格式,默认日志级别,Appender 负责指定输出位置,18,Log4j配置简介,log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLING_FILE.Threshold=ERROR log4j.appender.ROLLING_FILE.File=rolling.loglog4j.appender.ROLLING_FILE.Append=truelog4j.appender.ROLLING_FILE.MaxFile

9、Size=10KBlog4j.appender.ROLLING_FILE.MaxBackupIndex=1log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.ROLLING_FILE.layout.ConversionPattern=%d %p %c - %m%n log4j.logger.org.springframework=INFO log4j.logger.org.hibernate=INFO log4j.logger.org.yihang=INFO,针对某个包的日志级别设置,针

10、对某个 Appender的日志级别设置,19,Log4j使用注意事项,Log4j在用在JBoss环境中使用方法需要注意:由于JBoss本身也使用了Log4j,因此为了避免冲突,你需要提供自己的log4j.properties和log4j.jar Log4j.properties需要放置在WEB-INF/classes目录下,与你的顶层包平级 Log4j.jar需要放置在WEB-INF/lib下,第 二 章,Spring IOC,21,什么是接口,这个一个老问题,也是个新问题,取决你的认识 抛开你以前对接口的理解,请记住一句话:,接口是一种身份的象征,22,考虑以下对象,public class

11、 Person private String name;private int age;public void eat(String food) System.out.println(name + “正在吃“ + food); public void sleep() System.out.println(name + “正在睡大觉“); ,Person是一个普通 对象,不具有任何 特征,23,考虑以下接口,public interface Salesman public void sell(String goods);,public interface Housework public voi

12、d doIt(String work);,Salesman是一个销售人员 接口,具有这个接口的 类都会推销的技能,Housework是一个家务人员 接口,具有这个接口的 类都必须会做家务,24,public class Person implements Housework, Salesman private String name;private int age;。 public void doIt(String work) System.out.println(name + “正在做“ + work); public void sell(String goods) System.out.p

13、rintln(name + “正在销售“ + goods); ,当一个类实现了一个接口,那么 它就具有了一种新的身份 如果它实行了多个接口,它 就具有了多重身份,25,那么实现接口的意义是?,在商店,就(可以)把你当做销售人员用 在家,就(可以)把你当劳力用,26,举一些实际的例子,现在person1和person2都可以胜任销售人员用,但是只有一个职位,商场可以先雇佣一个销售人员,以后遇到好的再换。,Salesman,Person1,Person2,商场,人才市场,27,不好的选择,如果变成商场招聘的不是一个“职位”,而是一个具体的人(可以想象商场老板任人唯亲),那么即使人才市场有更优秀的李

14、四、王五,那么替换掉张三是很难的,张三,李四,商场,人才市场,王五,它们不是老板 的亲戚,28,用在实际设计中,业务逻辑接口,实现类A,实现类B,Action,业务实现包,29,但还有一点没有考虑到,由谁去筛选人才?,Salesman,Person1,Person2,商场,人才市场,30,商场,市场部,人事部,Salesman,Person2,人才市场,Person1,Person2,选拔,任命,31,这里人事部的职责就是负责产生销售人员 再次提醒大家,不是产生具体对象,而是产生一个身份(某种职务) 在编程技术里,称人事部为:对象工厂 在Spring里,就对应着各种BeanFactory,32

15、,什么是IoC,IoC即控制反转,有时候也叫做DI(依赖注入) 举报纸的例子 举商场的例子,33,考虑下列情形,是自己到报摊买报纸好 还是在邮局订阅,让人给送来好?,34,考虑下列情形,商场的例子里,是老板亲自去选拔、任命销售人员 还是老板下一个命令,让手下的人把这件事办妥了?,35,对于下面的例子,public class HelloImpl4 implements Hello private Message msg;public Message getMsg() return msg; public void setMsg(Message msg) this.msg = msg; publ

16、ic String sayHello(String name) return this.msg.getMsg() + “ “ + name; ,HelloImpl4这个类需要 用到Message类 那么, 是由HelloImpl4自己 实例化Message类呢 还是最好有人把 Message类实例化 好了,给它送过来呢,36,实现注入的步骤,A.在配置文件中声明好要注入的类,要注入的类定义,37,B.选择注入的方式,常用的注入的方式有两种 构造方法注入 Setter方法注入,38,对于构造注入,public class HelloImpl4 implements Hello private Message msg;public HelloImpl4(Message msg) this.msg = msg; ,被注入的属性 由Spring注入,

展开阅读全文
相关资源
相关搜索

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

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