连续看 spring framework 两天了,总算对 spring 有一点点的了解了,也算是有那么一点点的收获吧,写点东西,也算是对理解概念做一番总结吧,初看 spring 的时候总是被它的两个主要概念 IoC 和 AOP 搞的晕头转向,于是先忽略这些抽象的概念,通过一些具体的例子来加强理解吧,看的是一本 Spring Guide 的电子书,好歹也是中文的,理解起来要快一点了。
一开始的时候是在搞 JdbcTemplate,这是一个很好理解的概念,但是程序怎么也调不通过,最后才发现,原来是对 spring 基础知识的缺乏而导致的,算了,直接跳过,进行后面的基础知识学习了。 JdbcTemplate 概念其实很好理解,提供了对 Jdbc 的一种封装,简化一些 Jdbc 操作的冗余代码,思路和 MS 的 DotNet Enterprise Library 中的 Data Access Application Block 类似,在 XML 文件中配置数据库的连接信息,将数据库操作封装成一个类,可以进行返回 ResultSet 和仅仅操作而不返回记录的操作。
用一段代码来表示其不返回记录的操作方式: JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.update("UPDATE user SET age = 10 WHERE id = ''''erica''''");
再用一段代码来表示其返回记录的方式:(使用的是PreparedStatement) final List userList = new ArrayList(); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.query(
"SELECT name, sex, address FROM user WHERE age > 18", new RowCallbackHandler() { public void processRow(ResultSet rs) throws SQLException { User user = new User(); user.setId(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAddress(rs.getString("address")); userList.add(product); } } ); spring 的一个核心概念就是 IoC (Inversation of Control) 被 Martin Fowler 成为 Dependency Injection,spring 的核心部分包含了一个 IoC 容器。说白了 IoC 就是由容器控制程序之间的关系,而非传统实现有程序操纵。控制反转就是将控制权由应用程序代码中转到了外部容器,控制权的转移即所谓的反转。在 spring 中,我们只需要写 Bean 的接口代码,具体子类的实现可以通过 XML 或者其它的配置实现,以后维护时只需要修改配置文件而不是修改源代码。这样我们就把很多原本在编译期完成的任务转移到运行期来进行,很大程度上的提高了程序的灵活性。spring 也是一个无侵入式的高扩展性框架,即无须代码中涉及 spring 的专有类,即可将其纳入 spring 进行管理,也就是说,当有一个更好的 IoC 容器出来时,不需付出太大的代价即可实现迁移,这在 EJB 这样的高侵入式框架中简直就是一个恶梦。
[1] [2] [3] [4] 下一页 [办公软件]在sybase中插入图片、PDF、文本文件 [办公软件]安装Sybase ASE [办公软件]linux指令大全(完整篇) [办公软件]Linux新手入门常用命令大全 [办公软件]在RedHat Linux 9里安装gaim0.80 [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法 [办公软件]Linux程序员必读:中文化与GB18030标准 [办公软件]linux指令大全 [办公软件]制作Linux启动盘的四种方法 [办公软件]Linux文件系统的反删除方法
|