没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Spring 框架的优点都有什么?
是分层的架构,你可以选择使用你需要的层而不用管不需要的部
分
是 编程, 编程使得可持续构建和可测试能力提高
依赖注入和 使得 操作简单化
是开源的免费的
使得对象管理集中化合简单化
描述 一下 Spring 中实现 DI(Dependency Injection)的几
种方式
方式一:接口注入,在实际中得到了普遍应用,即使在 IOC 的概念尚未确立时,这样的方
法也已经频繁出现在我们的代码中。
方式二:Type2 IoC: Setter injection 对象创建之后,将被依赖对象通过 set 方法设置进去
方式三:Type3 IoC: Constructor injection 对象创建时,被依赖对象以构造方法参数的方式注
入
Spring 的方式
简述你对 IoC(Inversion of Control)的理解
一个类需要用到某个接口的方法,我们需要将类 A 和接口 B 的实现关联起来,最简单的方
法 是 类 A 中 创 建 一 个 对于 接 口 B 的 实 现 C 的 实 例 , 但 这 种 方 法 显 然 两 者 的 依 赖
(Dependency)太大了。而 IoC 的方法是只在类 A 中定义好用于关联接口 B 的实现的方法,
将类 A,接口 B 和接口 B 的实现 C 放入 IoC 的 容器(Container)中,通过一定的配置由容
器(Container)来实现类 A 与接口 B 的实现 C 的关联。
Spring 对多种 ORM 框架提供了很好的 支持,简单描述在
Spring 中使用 Hibernate 的方法。
在 context 中 定 义 DataSource , 创 建 SessionFactoy , 设 置 参 数 ; DAO 类 继 承
HibernateDaoSupport,实现具 体接口,从中获得 HibernateTemplate 进行具体操作。在使用
中 如 果 遇 到 OpenSessionInView 的 问 题 , 可 以 添 加 OpenSessionInViewFilter 或
OpenSessionInViewInterceptor。
请介绍一下 Spring 的事务管理
提供了几个关于事务处理的类:
事务属性定义
代表了当前的事务,可以提交,回滚。
!" 这个是 提供的用于管理事务的基础接
口,其下有一个实现的抽象类 #$ !"%我们
使用的事务管理类例如 " 等都是这个类的子
类。
一般事务定义步骤:
&'()*+
'")&*+
,
-&.
"!!)*+
/
.)01*-"$2)*+/
提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较
灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵 活。
编程式主要使用 !。省略了部分的提交,回滚,一系列的
事务对象定义,需注入事务管理对象
3&&&)*
-
!1)($2)*-
$4&)*
-&./
/
/
声明式:
使用 1,5,6
7#8#9:70;<707#8#9:70;<70
7#8#9:70;<70%&,
围绕 1, 的动态代理 能够自动的提交和回滚事务
!(21,5
,
7#8#9:70;<70=支持当前事务,如果当前没有事务,就新建一个
事务。这是最常见的选择。
7#8#9:<7=支持当前事务,如果当前没有事务,就以非事务
方式执行。
7#8#9:"#9#7>=支持当前事务,如果当前没有事务,就抛出
异常。
7#8#9:70;<70:90?=新建事务,如果当前存在事务,把当前事
务挂起。
7#8#9:9:<70=以非事务方式执行操作,如果当前存在
事务,就把当前事务挂起。
7#8#9:90@07=以非事务方式执行,如果当前存在事务,则抛出异
常。
7#8#9:900=如果当前存在事务,则在嵌套事务内执行。如果当
前没有事务,则进行与 7#8#9:70;<70 类似的操作。
如何在 Spring 的 applicationContext.xml 里面使用 JNDI 而
不是 datasource?
可以使用”org.springframework.jndi.JndiObjectFactoryBean”来实现。示例如下:
<bean id=”dataSource”>
,,, <property name=”jndiName”>
,,, ,,, <value>java:comp/env/jdbc/appfuse</value>
,,, </property>
</bean>
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 里面 applicationContext.xml 文件能不能改成其他文
件名?
1A&A 是一个 31A%它在你的 ($ 应
用启动的时候初始化。缺省情况下, 它会
在 ?0B9511! 文件找 的配置。 你可以通过定
义一个C1B!D元素名字为”1AE来改变
配置文件的 位置。示例如下:
CD
FFFCB
D !(2($11A&A
F
FFFC1B!D
FFFFFFC!B!D1AC!B!D
FFFFFFC!B3D?0B951,G1!C!B3D
FFFC1B!D
F
FFFCBD
CD
如何在
web
应用里面配置
spring?
在 J2EE 的 web 应 用 里 面 配 置 spring 非 常 简 单 , 最 简 单 的 只 需 要 把 spring 得
ContextLoaderListener 添加到你的 web.xml 文件里面就可以了,示例如下:
<listener>
,,, <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Spring 里面如何定义 hibernate mapping?
添加 hibernate mapping 文件到 web/WEB-INF 目录下的 applicationContext.xml 文件里面。示
例如下:
<property name=”mappingResources”>
,,, <list>
,,, ,,, <value>org/appfuse/model/User.hbm.xml</value>
,,, </list>
</property>
两种依赖注入的类型都是什么?
两种依赖注入的类型分别是 注入和构造方法注入。
setter 注入: 一般情况下所有的 43$%我们都会使用 方法和
方法去设置和获取属性的值,示例如下:
$!$-
FFFFFFFFF!+FF
FFFF$3&9!)*-
FFFFFFF!'+/
FFFF$9!)*-
FFFFFFF!+/
FFF/
我们会创建一个 $ 的实例然后设置属性的值, 的配置文件如下:
C$&'E$HFFD
FFC,FF!'E!ED
FFFFFFC3D!C3D
FFC,D
C$D
会调用 9! 方法来只是 ! 熟悉为 !
构造方法注入:构造方法注入中,我们使用带参数的构造方法如下:
剩余29页未读,继续阅读
资源评论
- 牛站长2023-07-27这个文件内容详实,不仅提供了考题,还附带了详细的答案解析,让人理解起来更加容易。
- 张景淇2023-07-27这个文件对于初学者来说非常友好,不论是对于Spring的原理还是应用场景,都做了很好的解释。
- 那你干哈2023-07-27这个文件提供的考题涵盖了Spring的各个核心知识点,是一个不可多得的备考资料。
- 家的要素2023-07-27这个文件真是太棒了!里面包含了大量与Spring相关的考题,非常有助于提升技术水平。
- 梁肖松2023-07-27这个文件整理得非常到位,对于想要系统学习Spring的人来说,是一个不可多得的资源。
eagleking012
- 粉丝: 20
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功