J2EE简答题(含答案)

1.简述MyBatis框架动态SQL中的主要元素及说明。(P67-68)

(1)<if>元素:用于判断语句,用于单条件分支判断

(2)<choose><when><otherwise>)元素:相当于Java中的switch...case...default语句,用于多条件分支判断

(3)<where><trim>、<set>元素:辅助元素,用于处理一些SQL拼装、特殊字符问题。

4<foreach>元素:循环语句,常用于in语句等列举条件中。

5<bind>元素:从OGNL表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的sql中。

2.简述MyBatis框架关联查询映射的两种处理方式。(P93-提示)

(1)嵌套查询是指通过执行另外一条SQL映射语句返回预期复杂类型

(2)嵌套结果是使用嵌套结果映射处理重复联合结果子集

3.简述事务的特性。(P124)

(1)原子性:事务是应用中最小的执行单位

2一致性:事务是执行的结果,必须使数据库从一种一致性状态变到另一种一致性状态。

(3)隔离性:事务是指各个事务执行互不干扰一个事务内部操作对其他并发的事务都是隔离的,即并发执行的事务之间不互相影响

(4)持续性:事务指事务一旦提交,对数据所做的任何改变都要记录永久存储器中,通常就是保存到物理数据库。

4.简述Spring框架的优点。(P161)

(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化

(2)方便解耦简化开发:Spring框架就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低组件之间的耦合性

(3)支持AOP:提供了对AOP的支持,允许将一些通用任务进行集中式处理提高程序复用性

(4)支持声明式事务处理:只需通过配置就可以完成对事务的管理,而无需手动编程

(5)方便程序的测试:提供了对Junit4支持,可以通过注解方便的测试Spring程序。

(6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其部提供了对各种优秀框架的直接支持

(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API,都提供了封装,使API应用难度大大降低

5.简述Spring的IoC和DI。(P167)

(1)IoC的全称是Inversion of Control,中文名称为控制反转。控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建Spring容器负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。

(2)DI的全称是Dependency Injection,中文称为依赖注入它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

6.简述Bean的7种装配方式的基本用法。(P183-192-197)

(1)基于XML的装配:

设置注入中的Bean类必须提供一个默认无参构造方法,同时必须为需要注入的属性提供对应的setter方法。使用设值注入时,在Spring配置文件中,需要使用<bean>元素的子元素<property>来为每个属性注入值。

使用构造注入时,在配置文件里,需要使用<bean>元素的子元素<constructor-arg>定义构造方法参数,可以使用其value属性(或子元素)来设置该参数的值。

(2)基于Annotation的装配:

使用@Repository@Service@Controller分别对实现类进行标注

然后用@Autowired@Resource注解对注入的Bean的属性进行标注

最后在Spring的配置文件中,通过<context:annotation-config />来开启注解处理器,或使用<context:component-scan base-package="Bean所在的包路径"/>的配置方式即可实现Annotation的装配。

(3)自动装配:在<bean>元素中使用@autowire属性,并将其属性值设置为byName或者byType即可实现自动装配。

7.列举你所知道的AOP专业术语并解释。(P207)

(1)Aspect(切面):指封装的用于横向插入系统功能的类。该类要被Spring容器识别为切面,需要在配置文件过<bean>元素指定。

(2)Joinpoint(连接点):在程序执行过程中的某个阶段点,对象的一个操作,如方法的调用或异常的抛出。

(3)Pointcut(切入点):是指切面与程序流程的交叉点,即那些需要处理的连接点,在程序中,切入点指的是类或者方法名,如某个通知要应用到所有以add开头的方法中,那么所有满足这一规则的方法都是切入点。

(4)Advice(通知/增强处理):AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。

(5)Target Object(目标对象):是指所有被通知的对象,也被称为被增强对象。如果AOP框架采用的是动态的AOP实现,那么该对象就是一个被代理对象。

(6)Proxy(代理):将通知应用到目标对象之后,被动态创建的对象。

(7)Weaving(织入):将切面代码插入到目标对象上,从而生成代理对象的过程。

8.请简述如何使用Junit对程序中的方法进行测试?

创建一个普通测试方法,并在方法上添加单元测试的注解 @Test ;

添加 @Test 注解后,在注解处会报错,将鼠标移动至 @Test 注解处,会弹出错误提示框,单击提示框中的 Add JUnit4 library to the build path 后, Eclipse 会自动将 JUnit4 的支持包加入到项目中;

在执行程序时,只需使用鼠标右键单击测试方法,在弹出的快捷菜单中选择 Run As 中的 JUnit Test 选项来运行测试方法即可。

9.Spring依赖注入通常有哪些实现方式,列举并分别进行说明?(P168)

依赖注入的作用就是在使用Spring 框架创建对象时,动态地将其所依赖的对象注入Bean 组件中,其实现方式通常有两种,一种是属性setter方法注入,另一种是构造方法注入,具体介绍如下:

属性setter方法注入:指IoC容器使用seter方法注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化Bean后,再调用该Bean的setter方法,即可实现基于setter方法的依赖注入。

构造方法注入:指IoC容器使用构造方法注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。

10.简述SpringMVC框架的请求处理流程,以及整体框架的结构。(P283)

Spring MVC框架也是一个基于请求驱动的Web框架,并且也使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(处理器)来进行处理。下面我们就详细地分析Spring MVC请求处理的流程步骤:

(1) 首先用户发送请求到前端控制器(DispatcherServlet), 前端控制器根据请求信自(如URL)来决定选择哪个页面控制器(Controller) 来进行处理,并把请求委托给它,即Serlvet控制器控制逻辑部分(步骤1、2)。

(2) 页面控制器接收到请求后,进行业务处理,处理完毕后返回一个ModelAndView(模型数据和逻辑视图名) (步骤3、4、 5)。

(3) 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的真正视图,并把模型数据传入以便将视图渲染展示(步骤 6、7)。

(4) 前端控制器再次收回控制权,将响应结果返回给用户,至此整个流程结束(步骤8)。

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值