- 1、Mùa xuân
- 1.1. Giới thiệu
- 1.2. Ưu điểm
- 1.3. Thành phần
- 1.4. Phần mở rộng
- 2. Đạo hàm lý thuyết của IOC
1、Mùa xuân
1.1. Giới thiệu
-
Mùa xuân:Mùa xuân---------->mang mùa xuân đến với ngành phần mềm! .
-
Năm 2002, nguyên mẫu của Spring framework lần đầu tiên được ra mắt: interf21 framework! .
-
Khung công tác Spring dựa trên khung giao diện21. Sau khi thiết kế lại và liên tục làm phong phú ý nghĩa của nó, phiên bản chính thức 1.0 được phát hành vào ngày 24 tháng 3 năm 2004.
-
Rod Johnson, người sáng lập Spring Framework, có bằng Tiến sĩ âm nhạc tại Đại học Sydney và bằng khoa học máy tính.
-
Khái niệm mùa xuân: Làm cho các công nghệ hiện có dễ sử dụng hơn. Bản thân nó là một hỗn hợp, tích hợp các khung công nghệ hiện có! .
-
SSH: Struct2+Spring +Hibernate.
-
SSM: SpringMvc + Spring + Mybatis!
Trang web chính thức: Spring Framework.
Địa chỉ tải xuống trang web chính thức: repo.spring.io.
GitHub: GitHub - spring-projects/spring-framework: Spring Framework 。
org.springframework spring-webmvc 5.2.0.RELEASE org.springframework spring-jdbc 5.2.0.RELEASE ctrl+shift+o để thoát
1.2. Ưu điểm
-
Spring là một framework (container) miễn phí mã nguồn mở! .
-
Spring là một framework nhẹ, không xâm phạm! .
-
Đảo ngược điều khiển (IOC), lập trình hướng khía cạnh (AOP)! .
-
Hỗ trợ xử lý giao dịch và hỗ trợ tích hợp khung! .
Tóm lại: Springjiushi+ là một khung lập trình đảo ngược điều khiển (IOC) nhẹ và hướng theo khía cạnh.
1.3. Thành phần
1.4. Phần mở rộng
Có phần giới thiệu này trên trang web chính thức của Spring: phát triển java hiện đại! Nói một cách thẳng thắn thì đó là sự phát triển dựa trên Spring! .
- Giày bốt mùa xuân
- Nền tảng cho sự phát triển nhanh chóng
- Dựa trên SpingBoot, một microservice có thể được phát triển nhanh chóng
- Thỏa thuận lớn hơn cấu hình!
- Mây mùa xuân
- Phong cách SpringCloud được triển khai dựa trên SpringBoot
Bởi vì hiện nay hầu hết các công ty đều đang sử dụng SpringBoot để phát triển nhanh chóng nên điều kiện tiên quyết để học SpringBoot là phải làm chủ hoàn toàn Spring và SpringMVC! Vai trò kết nối quá khứ và tương lai! .
Nhược điểm: Sau khi phát triển quá lâu sẽ vi phạm quan niệm ban đầu! Cấu hình rất cồng kềnh và được gọi là "cấu hình địa ngục!".
2. Đạo hàm lý thuyết của IOC
-
Giao diện UserDao.
gói com.jan.dao; giao diện công khai UserDao { void getUser(); }
-
Lớp triển khai UserDaoImpl.
package com.jan.dao; public class UserDaoImpl triển khai UserDao{ public void getUser() { System.out.println("Lấy dữ liệu người dùng theo mặc định!" } }
-
Giao diện kinh doanh của UserService.
gói com.jan.dao.service; giao diện công khai UserService { void getUser(); }
-
Lớp triển khai kinh doanh UserService Impl.
gói com.jan.dao.service; nhập com.jan.dao.UserDao; nhập com.jan.dao.UserDaoImpl; nhập com.jan.dao.UserDaoMysqlImpl; nhập com.jan.dao.UserDaoOracleImpl; { //Sau khi thêm lớp UserDaoMysqlImpl, bạn phải thay đổi UserServiceImpl Mã nguồn trong lớp, //Nếu có nhiều lớp thì có nên cạn kiệt không? Giải pháp? //private UserDao userDao = new UserDaoImpl();//Đối tượng được mã hóa cứng//private UserDao userDao = new UserDaoMysqlImpl();//đối tượng được mã hóa cứng//private UserDao userDao = new UserDaoOracleImpl();/ /đối tượng được mã hóa cứng Private UserDao userDao //Sử dụng tập hợp để tự động thực hiện việc tiêm giá trị! ! public void setUserDao(UserDao userDao) { this.userDao = userDao } public void getUser() { userDao.getUser();
-
Nếu có các lớp Impl mới được thêm vào khác.
gói com.jan.dao; lớp công khai UserDaoMysqlImpl triển khai UserDao{ public void getUser() { System.out.println("Mysql lấy dữ liệu người dùng!" } }
-
Triển khai MyTest.
nhập com.jan.dao.UserDaoSqlserverImpl; nhập com.jan.dao.service.UserService; nhập com.jan.dao.service.UserServiceImpl; lớp công khai MyTest { public static void main(String[] args) { //Người dùng thực tế Tầng nghiệp vụ được gọi, bọn họ không cần liên lạc với tầng dao! UserService userService = new UserServiceImpl(); ((UserServiceImpl) userService).setUserDao(new UserDaoSqlserverImpl()); userService.getUser();
Trong hoạt động kinh doanh trước đây của chúng tôi, nhu cầu của người dùng có thể ảnh hưởng đến mã gốc của chúng tôi và chúng tôi cần sửa đổi mã gốc theo nhu cầu của người dùng! Nếu số lượng mã chương trình rất lớn thì chi phí sửa đổi một lần sẽ rất tốn kém! .
Chúng tôi đã sử dụng cách triển khai giao diện Set, giao diện này đã trải qua những thay đổi mang tính cách mạng! .
userDao riêng userDao; //Sử dụng set để thực hiện việc tiêm giá trị một cách linh hoạt! ! public void setUserDao(UserDao userDao) { this.userDao = userDao }
-
Trước đây, chương trình đã tích cực tạo ra các đối tượng! Việc kiểm soát nằm ở người lập trình! .
riêng UserDao userDao = new 8UserDaoMysqlImpl();//Đối tượng được mã hóa cứng
-
Sau khi sử dụng set tiêm, chương trình không còn quyền chủ động nữa mà trở thành người nhận thụ động! .
Ý tưởng này về cơ bản giải quyết được vấn đề. Chúng tôi, những lập trình viên, không còn phải quản lý việc tạo ra các đối tượng nữa. Khả năng ghép nối của hệ thống được giảm thiểu đáng kể và bạn có thể tập trung hơn vào việc triển khai kinh doanh! Đây là nguyên mẫu của IOC! .
Cuối cùng, bài viết về Giới thiệu mùa xuân-IOC này kết thúc tại đây. Nếu bạn muốn biết thêm về Giới thiệu mùa xuân-IOC, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!