内容摘要:本文粗略地概括介绍了IoC,并详细介绍了Spring。Spring框架具有许多功能,其中许多功能在本文中只是点到为止。从基本的依赖注入到复杂的AOP操作,这些组成了Spring的强大功能,这是它的主要优点之一。能够根据问题需要使用或多或少的IoC功能是一个极具吸引力的理念。
编写一个小框架来解决这一问题会非常容易。我相信大家也都曾这样做过,但为何不让Spring帮我们处理这一问题呢?我不敢保证我能想出一个更整洁、更优雅的解决方案。我们来看Spring框架是如何处理这种样板JDBC场景的。
Spring支持各种各样的JDBC、Hibernate、JDO和iBatis模板。模板采用样板概念,并将它转换为合法的编程术语。例如,下面的代码片断封装了上面列出的各个步骤:
DataSource ds = (DataSource) bf.getBean("myDataSource");
JdbcTemplate temp = new JdbcTemplate(ds);
List sensorList = temp.query("select sensor.type FROM sensors",
new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException;
return rs.getString(1);
}
});
这段简短的代码消除了JDBC编程的冗长,代表了前面提及的样板的思路。请注意我们使用了Spring的IoC来查找该查询的数据源。Spring还支持对已检查异常使用未检查异常;因此许多已检查的JDBC异常会重新映射到通常更有用而且更友好的未检查异常层次结构中。在Spring的上下文文件中配置该数据源类似于下面代码:
<bean id="myDataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://romulus/sensors</value>
</property>
<property name="username">
<value>heater</value>
</property>
<property name="password">
<value>hotshot</value>
</property>
</bean>
在本例中,我们利用Apache commons工具箱配置了一个基本数据源。但并不是说我们只能使用它。我们可以改变配置,使用在JNDI中配置并装载的数据源。Spring提供了一些实用工具和IoC功能以配置和返回存储在JNDI中的对象。例如,若想配置并使用与JNDI上下文关联的数据源,则可以输入以下代码,替换先前的数据源配置:
来源:BEA 作者:Peter Braswell 责编:豆豆技术应用
- Java新闻
- Java入门教程
- Java开发工具
- J2EE
- J2SE
- J2ME
- EJB/Spring
- Applet/Swing
- Servlet/JSP
- Struts/Hibernate
- JDBC/JDO
- Ajax
- 认证考试
- JAVA对象比较器Comparator
- Java 6 RowSet 使用完全剖析
- 深入了解"Java"中的“异常机制”
- 讨论5种跟踪Java执行的方法
- Java专业术语标准化规范
- java中线程概念描述
- JAVA中的反射机制详解
- Java语言灵巧指针与垃圾回收
- 讲述java语言中内部类的研究
- Java对于Cookie的操作详解