Java面试题精品-spring框架

目录

@、什么是Spring框架?什么特点?

@、spring常用注解:

@、Spring有哪些优点

@、Spring有哪些缺点

@、spring中的核心类有那些,各有什么作用?

@、Spring里面如何配置数据库驱动?

@、介绍一下Spring的事务管理:


@、什么是Spring框架?什么特点?

轻量:

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。

核心的两部分:

ioc:控制反转,把对象创建交给spring管理

- 比如现在有类,类名称User,如果创建User对象,原始new User(),

- 使用spring框架之后,创建对象不需要使用new方式了,在spring使用配置方式把对象进行创建

(1)基于xml配置文件

(2)基于注解

aop:面向切面编程,扩展功能不是通过修改源代码实现

Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。

(1)xml配置文件

(2)dom4j解析xml

(3)工厂设计模式

(4)反射

使用工厂类解耦和操作:

容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是 一种容器.

框架:Spring可以将简单的组件配置、组合成为复杂的应用。

* 核心技术 IoC 和 AOP

* 数据访问 (持久层解决方案)

* Web层解决方案  SpringMVC

* 集成 (整合其他开源框架)

@、spring常用注解?

@Controller

public class ContentCatController {

@Autowired

private ContentCatService contentCatService;

@RequestMapping("/content/category/list")

@ResponseBody

public List<EasyUITreeNode> getContentCatList(@RequestParam(value="id", defaultValue="0") long parentId) {}

@RequestMapping("/item/{itemId}")

@ResponseBody

public TbItem getItemById(@PathVariable Long itemId) {

TbItem tbItem = itemService.getItemById(itemId);

return tbItem;

}

@、Spring有哪些优点?

1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

2.可以提供众多服务,事务管理,WS等。

3.AOP的很好支持,方便面向切面编程。

4.对主流的框架提供了很好的集成支持,如hibernate,Struts2等

5.Spring DI机制降低了业务对象替换的复杂性。

6.Spring属于低侵入,代码污染极低。

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

@、Spring有哪些缺点?

  • jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
  • Spring不支持分布式,这也是EJB仍然在用的原因之一

@、spring中的核心类有那些,各有什么作用?

BeanFactory:产生一个新的实例,可以实现单例模式

BeanWrapper:提供统一的get及set方法

ApplicationContext:提供框架的实现,包括BeanFactory的所有功能

@、Spring里面如何配置数据库驱动?

使用”org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。示例如下:

<bean id=”dataSource”>

        <property name=”driverClassName”>

        <value>org.hsqldb.jdbcDriver</value> </property>

        <property name=”url”>

            <value>jdbc:hsqldb:db/appfuse</value>

        </property>

        <property name=”username”><value>sa</value></property>

        <property name=”password”><value></value></property>

</bean>

@、介绍一下Spring的事务管理?

事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之 前的所有操作。

这样可以防止出现脏数据,防止数据库数据出现问题。

开发中为了避免这种情况一般都会进行事务管理。Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管 理,可以通过Spring的注入来完成此功能。

spring提供了几个关于事务处理的类:

TransactionDefinition //事务属性定义

TranscationStatus //代表了当前的事务,可以提交,回滚。

PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类 AbstractPlatformTransactionManager,我们使用的事务管理类.

例如DataSourceTransactionManager等都是这个类的子类。

一般事务定义步骤:

TransactionDefinition td = new TransactionDefinition();

TransactionStatus ts = transactionManager.getTransaction(td);

try

{ //do sth

transactionManager.commit(ts);

}

catch(Exception e){transactionManager.rollback(ts);}

发布了297 篇原创文章 · 获赞 181 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/libusi001/article/details/105547507