Java面试题-spring

目录

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

@、spring常用注解:

@、Spring有哪些优点

@、Spring有哪些缺点

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

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

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


Java面试总纲(持续更新!)

https://libusi.blog.csdn.net/article/details/104268324

@、什么是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);}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值