⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 笔试测试2-answer.txt

📁 Java大部分的基础知识,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,还有些面试题
💻 TXT
📖 第 1 页 / 共 2 页
字号:
						        如果有action用已有,没能根据类的反射实例化一个action,调用action的execute方法
						               在调用之前通过参数将actionForm注入到execute方法中。
						        在execute方法执行结束前通过actionMapping找到ActionForward转发到另一个页面。
						3、模板模式
							父类即有抽象方法又有具体方法,具体方法调用抽象方法,
							抽象方法被具体子类实现。向客户端公开的子类,客户端调
							用子类继承的具体方法,通过具体方法调用子类实现的抽象方法,
							为子类提供相关服务。
						4、标签:
							html:  上一个action创建了一个form转发到下一个jsp页面,jsp页面的
							     <html:form>标签所用form与上一个action所用的form类型及名称相同,可以直接
							     显示。
							     <html:select property="sex">
							     	   <html:options collection="sexes" property="code" labelProperty="name"/>
							     </html:select>
							bean:操作bean
								1、从request或session中取出一个bean或bean的属性,放置到page对象中
									<bean:define  scope="request" name="customer" id="customer_page">
									<bean:define  scope="request" name="customer" property="buies" id="buies_page">
								2、打印bean的一个属性。
									<bean:write scope="request" name="customer"  property="customeName"/>
							logic:逻辑处理
								//遍历集合中的每一个元素
								<logic:iterator scope="request" name="buies" id="buy"/>
								<logic:iterator scope="request" name="customer" property="buies" id="buy"/>
								//判断是否存在某一个对象
								<logic:present scope="request" name="customer"/>
								//判断是否相同
								<logic:equal scope="request" name="customer" value="10" property="customerName"/>
					业务层:
						IFacade接口
						Facade实现类
						FacadeFactory产生Facade实现类实例,返回IFacade接口,用了单例模式。
					dao层:
						dao接口
						dao实现类
						dao工厂
						抽象的dao工厂
						
						有一个dao接口,一个dao实现类,一个dao工厂,通过dao工厂产生dao实现
						类的实例,返回dao接口。抽象的dao通过反射、单例、工厂模式产生具体的
						dao工厂,返回抽象的dao工厂,因为具体的dao工厂继承于抽象的dao工厂,向
						业务层返回的是抽象dao工厂,实际调用还是具体的dao工厂方法。
					hibernate:执行速度慢,但让我们的工作量减少了95%
						核心配置:
							hibernate.cfg.xml:说明数据连接及具体的o/r mapping文件所在位置
							*.hbm.xml:具体的映射文件,说明类与表,属性与字段的对应关系。
						核心类:
							Configuration:加载hibernate.cfg.xml及*.hbm.xml文件
							SessionFactory:二级缓存管理,产生会话session
							Session:一级缓存管理,一个会话可以基于一行增、删、改、查
								save
								update
								saveOrUpdate()//如果有修改,如果没有增加
								delete
								get/load(Class cls,Seriable 主键);
							Query:批量查,批量改							
								query=session.CreateQuery("from Customer where customerName=:a and pwd=:b");
								query.setString("a","张三");
								query.setString("b","1234");
								query.list();
								
								session.createQuery("delete from Customer").executeUpdate();							
							Transaction:事务管理
								Transaction trans=session.beginTransaction();
								trans.commit();
								trans.rollback();
						OneToMany:
							1、一方可以找到另一方,所以要将前方作为对方的属性,在one这边有一个set属性。
							   在many这边有一个one类型的对象。
							2、主控方:维护外键列的值。
								invese="false"代表主控方,要想维护外键列的值必须将被控方作为主控方的属性。
								主控方一般在many这边。
							3、延迟加载:
								lazy="true"代表延迟加载,加载时只加载当前对象的不加载相关对象。
								lazy="false"代表即时加载,不但加载当前对象还加载关联对象的。
							4、级联:主增从增、主改从改、主删从删,要想控制从必须将从作为主的属性。
								cascase="all"或cacade="save-update"
						生命周期
							自由:直接实例化一个对象
							持久:当get、load、update、save、query.list()之后与session关联,通过
							     get方法可以取出对方,若在事务中通过set方法可以直接修改其值。
							游离:被session抛弃。
				struts&spring&hibernate&ibatis:速度是最慢的,因为要解析大量的xml文件,大量用到的反射。但可维护性、
				                       可扩展性是最好的,开发也是最快的,是当前主流的开发框架。
				                       struts:将IFacade接口作用其属性
				                       		Action将IFacade作为属性,在applicationContext.xml中配置具体
				                       		action类时,通过set方法注入将facade的代理类注入到action属性中。
				                       facade:将dao接口作为其属性。
				                       		IFacade接口
				                       		Facade实现类
					                       		在applicationContext.xml中配置具体facade类,通过set方法将dao接口
					                       		注入到facade中.
				                       			配置一个抽象代理说明具体的代理工厂,通过set方法将装备、关切点注入到
				                       			抽象代理中。
				                       			当前事务的实现有两种方式,一种是代码级的事务处理,另一种是声明式的事务处理,spring是通过
									声明式的事务进行处理的,这样代码中就不用管事务处理,由springAop实现,具体操作是这样的
									通过bean标签加入一个transactionManger事务管理装备,
									再通过bean标签加说明一个抽象代理,其类是TransactionProxyFactoryBean,属性有transactionManager
									、transactionAttributes分别说明具体的事务管理装备、那些方法需要什么样的事务处理。
									再通过bean标签说明一个具体业务代理,其parent=抽象代理,属性有target,说明
									真实业务的对象。
				                       dao:
				                       		dao接口 
				                       		dao实现类 extends HibernateDaoSupport/SqlMapClientDaoSupport
				                       			在applicationContext.xml中配置具体的dao实现类,通过set方法注入SessionFactory,
				                       			因为其继承于HibernateDaoSupprt可以直接用session所以必须注入SessionFatory。
				                       ibatis:
				                       	      1、为什么用?
				                       	      	  1、若客户出于安全的考虑,只提供几个select语句,只能ibatis,因为hibernate必须
				                       	      	     要求必须有主键且要全表映射。
				                       	      	  2、当需要高度优化的sql时,用ibatis较好,因为hibernate的sql是由hibernate自动生成的。
				                       	      	  3、将大量的业务逻辑写在存储过程中时,用ibatis较好。
				                       	      2、jdbc&hibernate&ibatis的比较
				                       	      	  jdbc:全手动
				                       	      	  	1、手写sql
				                       	      	  	2、执行sql
				                       	      	  		1、在执行insert、update、delete时要将对象的属性一个一个取出,
				                       	      	  		   通过PreparedStatement的setString一个属性一个属性的设置到
				                       	      	  		   PreparedStament对象中。
				                       	      	  		2、在进行对象的封装时,要取ResultSet中的每一行,每一列,依次
				                       	      	  		   设置到对象中,再将对象加入集合中。
				                       	      	  ibatis:半自动				                       	      	  	
				                       	      	  	1、手写sql
				                       	      	  	2、执行
				                       	      	  		1、在执行insert、update、delete直接传入一个对象。
				                       	      	  		2、查询时直接返回一个pojo或pojo对应的集合。
				                       	      	  hibernate:全自动				                       	      	  	
				                       	      	  	1、自动生成sql
				                       	      	  	2、执行
				                       	      	  		1、在执行insert、update、delete直接传入一个对象。
				                       	      	  		2、查询时,直接返回一个pojo或pojo对应的集合。
				                       spring:
				                       	  1、ioc/di
				                       	  	将类与类之间的依赖关系写在配置文件中,程序在运行时根据配置文件动
				                       	  	态加载依赖的类,将类与类之间强制解藕
				                       	  	ioc的发展:
				                       	  		1、代码中直接依赖
				                       	  			List list=new ArrayList();
				                       	  		2、通过工厂模式产生具体返回抽象,部分的符合了开闭原则。
				                       	  			Product product=Factory.newInstance();
				                       	  		3、spring的ioc
				                       	  2、aop:面向方面编程,是对oop的补充,oop关心的纵向的业务,aop提供的横向的服务如事务、安全、
				                       	         日志。其有五大名词,代理是拦截器,装备被代理调用提供具体的服务,关切点那些方法需要
				                       	         什么样aop服务,真实对象提供具体业务处理,连接点说明关心是方法还是属性,一般是方法。
				                       	         aop所用的模式是代理模式,有一个通用接口,一个代理,一个实现类,代理与实现类都实现了
				                       	         通用接口,将真实对象作为代理的属性,向客户端公开的代理,客户端调用代理的方法时,代理
				                       	         找到真实对象调用其方法处理,在处理之前之后可以调用装备提供事务、安全、日志等服务。
				                       	  3、三种注入方式:
				                       	  	set
				                       	  	constructor
				                       	  	接口
				                       	  总结:在spring的核心配置文件中配置的都中实现类,在具体代码中得到是接口。
				                       	       Action中有IFacade接口属性,Facade中有dao接口属性。完全符合上层依赖于
				                       	       下层,尽量减少下层对上层的依赖,层与层之间通过接口调用。
	详细设计(10%):若软件公司技术较强,可以忽略。
	编码(30%):
	测试(10%):
	部署

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -