您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > J2EE企业级应用开发考前复习
..Hibernate原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的mappingresource=com/xx/User.hbm.xml/读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSession();//打开Sesssion5.session.beginTransaction();//创建事务Transation6.persistentoperate持久化操作7.session.getTransaction().commit();//提交事务8.关闭Session9.关闭SesstionFactoryORM:对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则:简单:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。精确性:基于数据模型创建正确标准化了的结构。典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。Hibernatehi核心API有那些:Configuration、SessionFactory、Session、Transaction、Query、Criteria什么是AOP:(举个例子)AOP为AspectOrientedProgramming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。IOC:(举个例子)控制反转(InversionofControl,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。控制反转还有一个名字叫做依赖注入(DependencyInjection)。简称DI。什么是轻量级:轻量级框架一般由struts,spring组成,侧重于减小开发的复杂度,相应的它的处理能力便有所减弱,比较适用于开发中小型企业应用。采用轻量框架一方面因为尽可能的采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。Get和load的区别:Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于:如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。Lazy是什么:lazy,延迟加载Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。lazy策略可以用在:*class标签上:可以取值true/false*property标签上,可以取值true/false,这个特性需要类增强*set/list等集合上,可以取值为true/false/extra*one-to-one/many-to-one等标签上,可以取值false/proxy/no-proxyWeb容器加载Spring的过程:在应用程序web.xml中做了以下配置信息时,当启动Web容器时就会自动加载Spring容器。listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerContextLoaderListener类实现了javax.servlet.ServletContextListener接口并且继承了org.springframework.web.context.ContextLoader类。ServletContextListener事件类是Web容器的一部分,处理Web应用的Servlet上下文(context)的监听。实现ServletContextListener接口中的contextInitialized和contextDestroyed方法。当Web容器启动时会自动调用contextInitialized方法,进行初始化SpringWeb应用程序上下文,主要加载web.xml中contextConfigLocation的配置文件;当Web容器关闭之前会调用contextDestroyed方法,进行销毁SpringWeb应用程序上下文。ContextLoader类实现了Spring上下文初始化的工作,执行initWebApplicationContext方法返回WebApplicationContext。两种依赖注入方法:在过去的开发过程中,这两种注入方式都是非常常用的。Spring也同时支持两种依赖注入方式:设值注入和构造注入。这两种依赖注入的方式,并没有绝对的好坏,只是适应的场景有所不同。相比之下,设值注入具有如下的优点:与传统的JavaBean的写法更相似,程序开发人员更容易理解、接受。通过setter方法设定依赖关系显得更加直观、自然。对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,因而导致性能下降。而使用设值注入,则能避免这些问题。尤其是在某些属性可选的情况下,多参数的构造器更加笨重。构造注入也不是绝对不如设值注入,在某些特定的场景下,构造注入比设值注入更优秀。构造注入也有如下优势:构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。例如,组件中其他依赖关系的注入,常常需要依赖于Datasource的注入。采用构造注入,可以在代码中清晰地决定注入顺序。对于依赖关系无须变化的Bean,构造注入更有用处。因为没有setter方法,所有的依赖关系全部在构造器内设定。因此,无须担心后续的代码对依赖关系产生破坏。依赖关系只能在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。对组件的调用者而言,组件内部的依赖关系完全透明,更符合高内聚的原则。什么是编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。HQL:是一种面向对象的SQL语言。与sql不同的是里面是对象名称而不是数据库的表名Hibernate的作用:第一:数据库连接不需要我们自己来管理,如打开和关闭(优点吧)第二:Hibernate对原来的SQL语句进行了封装,以前写很多SQL语句,现在你在保存的时候直接可以用SAVE(对象)来实现了。(节省代码吧)第三:原来是对表操作,现在是对对象操作,想法上是不是更好呢?都是对象。Sping的作用:Spring的Ioc(控制反转和依赖注入)控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。依赖注入:组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。编程:基于SSH的用户登录和用户管理:HibernateDAOSupportUserUserActionIuserServiceUserServiceImplUserDAoWeb.xmlStruts2.xmlapplicationContext.xmlapplicationContext.xml?xmlversion=1.0encoding=UTF-8?beansbeanid=dataSourceclass=org.apache.commons.dbcp.BasicDataSourcedestroy-method=closepropertyname=driverClassNamevalue=com.mysql.jdbc.Driver/propertyname=urlvalue=jdbc:mysql://localhost:3306/userlogin/propertyname=usernamevalue=root/propertyname=passwordvalue=root//beanbeanid=sessionFactoryclass=org.springframework.orm.hibernate3.LocalSessionFactoryBeapropertyname=dataSourceref=dataSource/propertyname=hibernatePropertiespropspropkey=hibernate.dialectorg.hibernate.dialect.MySQLDialect/proppropkey=hibernate.show_sqltrue/proppropkey=hibernate.hbm2ddl.autoupdate/prop/props/propertypropertyname=mappingResourceslistvaluelogin/entity/User.hbm.xml/value/list/property/beanbeanid=userDaoclass=login.dao.UserDAOImplpropertyname=sessionFactoryref=sessionFactory//beanbeanid=userServiceclass=login.service.ServiceImplpropertyname=userDAOref=userDao/property/beanbeanid=LoginActionclass=login.action.LoginActionpropertyname=userServiceref=userService/property/bean/beansWeb.xml?xmlversion=1.0encoding=UTF-8?web-applistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerfilterfilter-nameOpenSessionInViewFilter/filter-namefilter-classorg.springframework.orm.hibernate3.support.OpenSessionInViewFilter/filter-class/filterfilter-mappingfilter-nameOpenSessionInViewFilter/filter-nameurl-pattern/*/url-pattern/filter-mappingfilterfilter-namestruts2/filter-name
本文标题:J2EE企业级应用开发考前复习
链接地址:https://www.777doc.com/doc-2878265 .html