SSH-三大框架介绍ppt课件.ppt
采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物SSH 框架 介绍采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物培训目标l SSH基本概念l 认识框架l 认识SSH框架l 开发入门采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物认识框架 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物大奔先生汽车之父和奔驰汽车奔驰汽车Karl Friedrich Benz采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物汽车基本结构就是一个框架底盘车身发动机电气设备保时捷飞机汽车水上汽车采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物框架是什么? 框架是前辈们多年以来总结出的一些开发标准;让后辈可以以成功的经验模式来开发自已的系统。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物使用优秀框架的好处易于开发易于开发:框架对底层的API进行了封装,开发者不需要直接接触底层的API,只需要写一些必须的代码。结构清晰结构清晰:清晰的结构使得各模块功能明确,更易于阅读,从而使其他开发者能够更快加入,也降低了后期维护成本。易于测试:易于测试:采用成功的框架的代码比自己的代码容易测试。缩短周期:缩短周期:采用成功的框架能缩短项目的设计、开发周期。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Struts2 SpringMVCHibernateSpring页面展示管理数据库MyBatis采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物认识SSH框架 SpringMVCHibernateSpringSSH采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Java文件结构数据库连接、SQL语句SSH各部分技术负责工作JSP文件结构HTML跳转Java文件结构业务逻辑代码Servlet文件结构页面逻辑HibernateSpringMVCJavaBeanSpring管理采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物认识SpringMVC 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物什么是MVC 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物电视节目电视信号电视机采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物ModelView1ControllerView2View3模型控制视图是一种软件设计典范,通过业务逻辑、数据、界面显示分离的方法来组织代码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物什么是SpringMVC?SpringMVC是一个典型的教科书式的MVC框架,作用是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。即简化WEB前端开发的工具。同类竞争对手Struts2采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物SpringMVC工作原理采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物认识Hibernate 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物什么是Hibernate?Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 即把对象操作转成SQL语句同类竞争对手Mybatis采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Hibernate原理Java应用程序Hibernate持久化对象JNDIJDBC数据库SQL Java应用程序直接对持久化对象作增、删、改、查操作。 Hibernate会把这些操作解释成SQL语句。 通过JNDI、JDBC提交SQL到数据库。123采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Hibernate的优点对象/关系数据库映射(ORM),简化了DAO层编码工作,使开发更对象化了支持透明持久化(Transparent Persistent)它没有侵入性,即所谓的轻量级框架移植性会很好,能支持不同类型的数据库系统缓存机制,提供一级缓存和二级缓存采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物认识Spring 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物什么是Spring?Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,创建的目的是解决企业应用开发的复杂性。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物什么是IOC?控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物一个生活中的IOC例子 何金水何金水在某家公司任职,老板要求他负责公司职员日常的饮水问题。老板对金水可以有两种形式的要求: 第一种是必须只能购买A公司的水。 第二种是只要有水喝就行不管哪家都行。 如果是第一种情况,那么当金水发现不能在和A公司合作而想转向购买B公司的水的时候,金水必须要做的一件事情是向老板请示并且征得其同意方可更改卖主。如果是第二种情况,则金水完全不用关心老板的意见就可以决定并且控制这个更改。 老板只对金水提出一个接口要求那就是水,至于从什么地方来,这个过程的更改控制权反转给了金水。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物类AAInterface aAInterfaceImpA代码片段:类 AAInterface a;A() aMethod() a = new AInterfaceImpA();类AAInterface aAInterfaceImpB代码片段:类 AAInterface a;A() aMethod() a = new AInterfaceImpB();类 A 和 AinterfaceImplA耦合性太强采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Class AAInterface aAInterfaceImpAAInterfaceImpBAinterface工厂AInterface create(Object condition)根据条件condition返回不同的实现类代码片段:类 InterfaceImplFactoryAInterface create(Object condition)if(condition = condA)return new AInterfaceImpA();elseif(condition = condB)return new AInterfaceImpB();elsereturn new AInterfaceImp();AinterfaceImplA、B 和 Ainterface工厂耦合性太强采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物IOC容器类AAInterface aIOC工厂XML配置AInterfaceImpA123IOC工厂自动从XML获取类描述。实例化描述中的类。把实例化的类注入到指定的接口上。可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的,然后利用Java 的“反射”编程,根据XML中给出的类名生成相应的对象。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物XML配置片段: 代码片段:类 AAInterface a = null;A() 类 AInterfaceImpA类 AInterfaceImpB采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物WEB容器Spring IOC容器如何使用Spring IOC把SpringMVC和Hibernate整合HinterfaceImplHibernate数据接口实现类SInterfaceImpl业务逻辑实现类Hinterface数据接口Controller对象Sinterface业务逻辑接口Hibernate对象注入JavaBean对象注入浏览器http请求http返回采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物开发入门 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物1、开发环境搭建 jdk1.7 sts3.6.22、项目环境搭建 导入相关jar包(spring包,Hibernate包,数据库驱动,数据源包,测试包等) web.xml配置 spring配置文件配置 springMVC配置文件配置3、编程开发采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 配置文件介绍 web.xml配置1、要正常的使用spring必须在web.xml中开启spring监听器,同时如spring配置文件名称、位置不是默认,则需要进行配置2、为避免Hibernate延时加载时因session关闭所产生的异常,通过openSessionInViewFilter配置,将session的开关交由spring进行管理3、进行DispatcherServlet配置,保证springMVC的正常使用,同时如springMVC配置文件名称、位置不是默认,则需要进行配置4、另外还可以进行字符编码过滤器配置,避免出现乱码现象等采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物web.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物web.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 配置文件介绍 属性文件(config.properties)数据库连接相关配置信息通常存储在属性配置文件中。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 配置文件介绍 spring配置文件默认名称:applicationContext.xml。默认位置:/WEB-INF/applicationContext.xml。如果名称、位置不是在默认位置需在web.xml中进行配置。在该文件中可以进行如下配置:1、扫描包目录配置(同时开启基于注解方式)2、属性文件的导入配置3、注册需要spring来管理的类(整合Hibernate,对数据源对象与SessionFactory对象进行描述和属性配置)4、事务管理配置等采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物spring-hibernate.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物spring-hibernate.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物spring-hibernate.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物 配置文件介绍 springMVC配置文件默认名称:-servlet.xml。默认位置:/WEB-INF/-servlet.xml。如果名称、位置不是在默认位置需在web.xml中进行配置。在该文件中可以进行如下配置:1、扫描包目录配置(同时开启基于注解方式)2、HandlerMapping、HandlerAdapter 注册3、viewResolver配置4、异常页配置5、文件上传配置6、拦截器配置等采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物springMVC.xml采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物注解 Component(不推荐使用) Repository(value=userDao) Service(userService) Constroller Resource(name = userDao) Autowired Qualifier(userDao)(不推荐使用) 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物UserBean.javaEntityTable(name = tb_user, catalog=db_ssh)/DB2数据库schema=DBpublic class UserBean private int id;private String userName; private String password;private Date createDate;public UserBean() public UserBean(String userName, String password, Date createDate) this.userName = userName;this.password = password;this.createDate = createDate;IdGeneratedValuepublic int getId() return id;public void setId(int id) this.id = id;public String getUserName() return userName;public void setUserName(String userName) this.userName = userName;public String getPassword() return password;public void setPassword(String password) this.password = password;Column(name=create_date, nullable = false, length = 7)public Date getCreateDate() return createDate;JsonFormat(timezone=GMT+08:00,pattern=yyyy-MM-dd HH:mm:ss)public void setCreateDate(Date createDate) this.createDate = createDate;采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物UserDao.javaRepository(userDao)public class UserDao implements IUserDao private SessionFactory sessionFactory;public SessionFactory getSessionFactory() return sessionFactory;Autowiredpublic void setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory;private Session getCurrentSession() return this.sessionFactory.getCurrentSession();Overridepublic Serializable save(UserBean userBean) return this.getCurrentSession().save(userBean);public interface IUserDao public Serializable save(UserBean userBean);采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物UserService.javaService(userService)public class UserService implements IUserServiceprivate IUserDao userDao;public IUserDao getUserDao() return userDao;Resourcepublic void setUserDao(IUserDao userDao) this.userDao = userDao;Overridepublic Serializable save(UserBean userBean) userBean.setCreateDate(new Date();userBean.setPassword(SecurityUtil.md5(userBean.getPassword();return userDao.save(userBean);public interface IUserService public Serializable save(UserBean userBean);采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物UserController.javaControllerRequestMapping(/user)public class UserController private IUserService userService;public IUserService getUserService() return userService;Resource(name=userService)public void setUserService(IUserService userService) this.userService = userService;RequestMapping(value = /register, method = RequestMethod.GET)public String register() return register;RequestMapping(value = /register, method = RequestMethod.POST)public String register(UserBean userBean) userService.save(userBean);return redirect:login;用户名:用户密码:采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物