Khác biệt giữa bản sửa đổi của “Spring Framework”

Nội dung được xóa Nội dung được thêm vào
Dòng 42:
* Bao gồm bộ quản lý cài đặt (''configuration management'') dựa trên [[JavaBeans]] hùng mạnh, áp dụng lý thuyết [[đảo ngược quyền khống chế]] (IoC) làm cho việc mắc nối các chương trình ứng dụng nhanh chóng và dễ dàng hơn. Việc sử dụng (IoC) trong khung hình Spring còn được ám chỉ đến với cái tên [[Dependency Injection]](DI) (''Nghĩa đen: bơm hay tiếp thành phần phụ thuộc - từ bên ngoài vào lúc cần thiết, thay vì phải tự tạo từ bên trong''). Nguyên lý của IoC sử dụng trong Spring framework là một kỹ thuật ngoại biên hóa (''externalizes'') việc kiến tạo và quản lý của những thành phần phụ thuộc. Lấy ví dụ trường hợp lớp "Foo" phụ thuộc vào một thực thể cá biệt (''instance'') của "Bar" để thi hình một nhiệm vụ nào đấy. Trong phương pháp cổ truyền, "Foo" phải tự kiến tạo thực thể cá biệt của "Bar" dùng hành động "new" (''kiến tạo cái mới''), hoặc phải tiếp nhận thực thể cá biệt từ một lớp chế xuất nào đấy (''factory class''). Nếu sử dụng tiếp cận của IoC thì một tiến trình ngoại biên nào đấy sẽ cung cấp một thực thể cá biệt của "Bar" (hoặc một tiểu lớp (''subclass'') của nó) cho "Foo" trong thời gian chạy (runtime). Đây chính là nguyên nhân tại sao thành ngữ (DI) là một thành ngữ diễn tả tính năng của Spring rõ hơn (hơn là IoC).
* Một [[abstract factory pattern|mẫu hình chế xuất trừu tượng]] nòng(''abstract cốtfactory pattern'') [[Enterprise Java Beans]] (ẸB) nòng cốt, có thể sử dụng trong bất cứ môi trường nào, từ những cấu trúcchế bao bọc (''containers'') [[applet]]s cho đến [[Java EE]].
 
* Một lớp trừu tượng chung chung quản lý [[giao dịch cơ sở dữ liệu]] (''database transaction''), cho phép các bộ phận quản lý giao dịch được bổ trợ theo lối lắp ráp (pluggable), và tạo điều kiện thuận lợi cho việc phân định danh giới các giao dịch (''demarcate transactions'') mà không cần phải xử lý với những vấn đề ở tầng đưới (''low-level issues'').
 
* Những chiến lược chung cài sẵn bên trong (''Built-in generic strategies'') dành forcho [[Java Transaction API|JTA]] and amột singleđơn thể [[Java Database Connectivity|JDBC]] nguồn dữ liệu (''DataSource''). InĐối lập với những giao dịch do cơ chế bao bọc quản lý (''Container-Managed Transactions'' - CMT) contrastđơn tothuần plaintrong JTA orhoặc [[EJB]] CMT, hỗ trợ đối với giao dịch trong bộ khung Spring's transactionkhông supportđòi doeshỏi notmôi requiretrường [[Java EE]] environments.
 
* Tầng liên nối với cơ sở dữ liệu (''JDBC abstraction layer '') cung cấp một cơ chế tầng cấp đầy ý nghĩa đối với những ngoại lệ (''exception hierarchy'') (không còn phải dựa vào việc nắn bóp mã nguồn của nhà sản xuất phần mềm như đối với SQLException nữa), đơn giản hóa việc xử lý lỗi, và cũng đồng thời thuyên giảm số lượng dòng lệnh mà lập trình viên cần phải viết. Quí vị sẽ không bao giờ phải viết một khối 'finally' trong các dòng mã sử dụng JDBC nữa. Những ngoại lệ hướng JDBC đều phục tùng với cơ chế ngoại lệ tầng cấp chung DAO ([[Data Access Object]]) của Spring.
* JDBC abstraction layer that offers a meaningful exception hierarchy (no more pulling vendor codes out of SQLException), simplifies error handling, and greatly reduces the amount of code programmers need to write. You'll never need to write another 'finally' block to use JDBC again. The JDBC-oriented exceptions comply with Spring's generic DAO ([[Data Access Object]]) exception hierarchy.
 
* Integration with [[Hibernate (Java)|Hibernate]], [[Java Data Objects|JDO]] and [[iBATIS]] [[SQL Maps]]: in terms of resource holders, DAO implementation support, and transaction strategies. First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues. All of these comply with Spring's generic transaction and DAO exception hierarchies.