关于Spring的笔试题(三)
1. 谈谈你所知道的数据库连接池?
概念:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
阿里的Druid开源连接池,c3p0连接池,Hibernate中sessionFactory内部维护了一个连接池,spring内置的连接池DriverManagerDataSource
2.Dao类可以怎么样使用jdbcTemplate进行数据库操作?
1.通过Autowired注入jdbcTemplate,dao类在spring管理中,jdbcTemplate在spring管理中,在dao类上直接通过autowired注入
2.通过property属性注入,dao类在spring管理中,jdbcTemplate在spring管理中,在dao类上添加set方法,在xml文件中配置property属性注入
3.dao类继承JdbcDaoSupport,dao类在spring容器中,给他注入属性DataSource,然后在dao 类中直接使用getTemplate()
3.谈谈你所知道的数据库事务管理器?
spring中的平台事物管理器可以根据不同的平台选择相应的事物管理器,有DataSourceTransactionManager,针对jdbctemplate和mybits开发
HibernateTransactionManager针对Hibernate开发
JpaTransactionManager针对jpa开发
事物管理器根据TransactionDefinition定义的事物信息进行事物管理,通过Transactionstatus来描述事物的运行状态
4.spring基于xml配置声明式事务管理步骤?
步骤:1.在applicationContext.xml中声明aop和tx的名称空间
2.声明事物管理器 也就是声明一个bean
3.声明通知 通过<tx:advice>和他里面的各种属性配置其中name是必须的,说明对那个方法进行事物控制
4.声明切面 通过<aop:config>配置切面,在里面配置切点和通知
Spring声明式事务管理步骤:
1.导入所需jar包(Spring3.0之后不再一起发布依赖包,要自行下载)
2.在applicationContext.xml下配置事务管理器Bean
3.在配置文件的头部引入<tx>和<aop>命名空间
4. 配置事务属性
5. AOP的配置