99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

400-609-4309

java開發常用的框架

java開發常用的框架

Java開發常用的框架

摘要

Java開發領域框架多如牛毛,從Web開發到數據持久化,從依賴管理到微服務架構,新手常陷入“學哪個才有用”“怎么用才高效”的迷茫。本文梳理了Java開發中最常用、企業最認可的幾大類框架,從核心功能、解決痛點到上手示例,幫你搞懂每個框架的“真實價值”,避免盲目學習踩坑。無論你是剛入行的小白,還是想提升技術棧的開發者,讀完這篇都能對Java框架有清晰認知,選對工具事半功倍。

一、Web開發框架:從“重復造輪子”到“專注業務”

剛學Java時,我曾用Servlet寫過一個簡單的登錄功能,光處理請求參數、跳轉頁面就寫了200多行代碼,還得手動處理中文亂碼、異常捕獲。后來接觸到Web框架才發現:好的框架能幫你把80%的重復工作自動化,只需要專注剩下20%的業務邏輯

1. Spring MVC:MVC架構的“行業標桿”

是什么:Spring MVC是Spring生態中的Web層框架,基于MVC(模型-視圖-控制器)設計模式,幫你規范Web應用的開發流程。

解決痛點:傳統Servlet開發中,一個請求對應一個Servlet類,導致類爆炸;參數解析、視圖跳轉需要手動編碼,代碼冗余且難維護。

核心優勢

請求映射:通過@RequestMapping注解,一行代碼綁定URL和處理方法,不用再配置web.xml;

參數自動綁定:前端傳的JSON、表單參數,自動映射到Java對象,不用手動request.getParameter();

視圖解析:統一管理頁面跳轉,配置前綴后綴后,直接返回邏輯視圖名即可。

上手示例(快速寫一個用戶查詢接口):

@Controller

@RequestMapping("/user")

public class UserController {

@Autowired

private UserService userService;

// GET請求:/user/123

@GetMapping("/{id}")

@ResponseBody // 返回JSON,不跳轉頁面

public Result getUser(@PathVariable Long id) {

User user = userService.findById(id);

return Result.success(user); // 統一響應格式

}

}

適用場景:企業級Web應用、前后端分離接口開發,幾乎所有Java Web項目都會用到。

2. Spring Boot:“零配置”開發的“加速器”

是什么:Spring Boot是Spring的“腳手架”,基于“約定大于配置”思想,幫你快速搭建獨立運行的Spring應用。

解決痛點:傳統Spring項目需要配置大量XML(如數據源、事務管理器),依賴沖突頻繁,部署時還得打War包扔到Tomcat——這些操作曾讓我一個項目配置搞了3天,最后發現是少了個依賴。

核心優勢

自動配置:根據引入的依賴自動配置組件(比如引入spring-boot-starter-web,自動配置Tomcat、Spring MVC);

起步依賴:把常用依賴打包成starter(如mybatis-spring-boot-starter),不用手動寫版本號,減少依賴沖突;

內嵌容器:自帶Tomcat、Jetty,項目可直接打成Jar包運行,java -jar就能啟動,部署超方便。

上手示例(10分鐘搭建一個Web項目):

1. 訪問Spring Initializr,選擇依賴Spring Web;

2. 下載項目后,寫一個控制器:

java

@RestController

public class HelloController {

@GetMapping("/hello")

public String hello() {

return "Hello Spring Boot!";

}

}

3. 運行main方法,訪問http://localhost:8080/hello,直接看到結果。

適用場景:微服務項目、快速原型開發、中小型Web應用,現在企業新項目90%以上都會用Spring Boot。

二、ORM框架:讓“操作數據庫”像“操作對象”一樣簡單

Java開發者繞不開數據庫,但直接寫JDBC太痛苦了:加載驅動、獲取連接、創建Statement、處理ResultSet……一套流程下來,業務代碼沒寫幾行,重復代碼堆了一堆。ORM(對象關系映射)框架就是來解決這個問題的——把數據庫表映射成Java對象,用面向對象的方式操作數據庫

1. MyBatis:“半自動化”ORM的“靈活之王”

是什么:MyBatis是一款輕量級ORM框架,允許開發者手寫SQL,同時提供映射功能,把SQL結果映射成Java對象。

解決痛點:JDBC代碼冗余,Hibernate(另一種ORM框架)自動生成的SQL不夠靈活,復雜查詢難優化。

核心優勢

SQL可控:SQL寫在XML或注解里,開發者能自由優化SQL(比如加索引、子查詢),性能調優方便;

映射靈活:支持一對一、一對多、多對多映射,解決表關聯查詢問題;

輕量級:學習成本低,配置簡單,集成Spring Boot只需要加個starter。

上手示例(查詢用戶列表):

1. 定義Mapper接口:

java

public interface UserMapper {

List findAll();

}

2. 寫XML映射文件(UserMapper.xml):

xml

3. 在Service中調用:

@Service

public class UserService {

@Autowired

private UserMapper userMapper;

public List getAllUsers() {

return userMapper.findAll();

}

}

適用場景:對SQL性能有要求的項目(如電商訂單系統)、復雜查詢較多的業務,國內企業用得最多的ORM框架。

2. Hibernate:“全自動化”ORM的“懶人神器”

是什么:Hibernate是一款全自動化ORM框架,完全屏蔽SQL,通過操作Java對象實現數據庫操作(“持久化”對象)。

解決痛點:MyBatis需要手寫SQL,對于簡單CRUD操作來說,重復編寫SQL很浪費時間。

核心優勢

零SQL開發:通過注解或XML定義實體類與表的映射關系,保存對象直接調用session.save(user),Hibernate自動生成SQL;

數據庫無關性:同一套代碼,換數據庫(MySQLOracle)只需要改配置,不用改SQL;

緩存機制:自帶一級緩存(Session緩存)和二級緩存(SessionFactory緩存),減少數據庫訪問。

上手示例(保存用戶):

1. 定義實體類(用注解映射):

java

@Entity

@Table(name = "user")

public class User {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

private String username;

private Integer age;

// getters and setters

}

2. 保存對象:

@Service

public class UserService {

@Autowired

private SessionFactory sessionFactory;

public void saveUser(User user) {

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

session.save(user); // 自動生成INSERT SQL

tx.commit();

session.close();

}

}

適用場景:快速開發、簡單CRUD為主的項目(如后臺管理系統),國外企業使用較多。

三、依賴注入容器:Spring Core——“項目的大腦”

學Java框架繞不開Spring,而Spring的核心就是IoC容器(控制反轉)DI(依賴注入)。簡單說,以前我們需要手動new對象(比如UserService service = new UserServiceImpl()),現在把對象創建權交給Spring容器,需要時直接“注入”使用。

解決痛點:傳統開發中,對象之間依賴關系復雜(A依賴B,B依賴C),修改一個類可能導致“牽一發而動全身”,代碼耦合度高,難測試、難維護。

核心優勢

解耦:對象依賴由容器管理,不用手動創建,降低代碼耦合;

可擴展性:通過接口和實現類分離,替換實現類只需要改配置;

AOP支持:結合Spring AOP(面向切面編程),可以統一處理日志、事務、權限等橫切邏輯(比如在所有Service方法執行前后打印日志)。

上手示例(依賴注入):

// 定義接口

public interface UserService {

void addUser();

}

// 實現類

@Service // 告訴Spring這是一個服務類,由容器管理

public class UserServiceImpl implements UserService {

@Override

public void addUser() {

System.out.println("添加用戶");

}

}

// 控制器中注入使用

@Controller

public class UserController {

@Autowired // 自動注入UserService的實現類

private UserService userService;

public void doAdd() {

userService.addUser(); // 直接調用,不用手動new

}

}

為什么重要:Spring MVC、Spring Boot、Spring Cloud等所有Spring生態框架,都基于Spring Core的IoC容器。不懂依賴注入,就等于沒入門Spring。

四、微服務框架:當項目變大,如何“拆而不亂”

隨著業務增長,單體項目會越來越臃腫(代碼量幾十萬行,啟動要10分鐘),這時候就需要“微服務拆分”——把一個大項目拆成多個小服務(如用戶服務、訂單服務、支付服務),每個服務獨立開發、部署。但拆分后,服務之間如何通信?如何發現對方?如何處理分布式事務?微服務框架就是來解決這些問題的。

1. Spring Cloud:微服務的“全家桶”

是什么:Spring Cloud是一系列微服務組件的集合,基于Spring Boot開發,提供服務注冊發現、配置中心、負載均衡、熔斷降級等“一站式”解決方案。

核心組件

Eureka/Nacos:服務注冊發現(服務啟動后自動注冊到注冊中心,其他服務通過名字找到它);

Gateway:API網關(統一入口,處理路由、認證、限流);

Config/Nacos Config:配置中心(集中管理所有服務的配置,動態刷新);

Feign:聲明式服務調用(像調用本地方法一樣調用遠程服務);

Hystrix/Sentinel:熔斷降級(服務故障時,防止整個系統崩潰)。

適用場景:中大型微服務項目,國內互聯網公司(如阿里、京東)常用,生態完善,學習成本較高但功能全面。

2. Dubbo:阿里系的“高性能RPC框架”

是什么:Dubbo是阿里開源的RPC(遠程過程調用)框架,專注于服務之間的通信,后來整合了Spring Cloud的部分組件(如注冊中心用Nacos)。

核心優勢

高性能:基于Netty的二進制協議傳輸,比Spring Cloud的HTTP協議更快;

輕量級:核心功能聚焦RPC通信,學習成本比Spring Cloud低;

國內生態成熟:阿里、當當、網易等企業廣泛使用,中文文檔豐富。

上手示例(服務調用):

1. 定義接口(服務提供者和消費者都需要):

java

public interface UserService {

User getUserById(Long id);

}

2. 服務提供者實現接口:

java

@DubboService // Dubbo注解,暴露服務

public class UserServiceImpl implements UserService {

@Override

public User getUserById(Long id) {

return new User(id, "張三", 20);

}

}

3. 服務消費者調用:

@RestController

public class UserController {

@DubboReference // 注入遠程服務

private UserService userService;

@GetMapping("/user/{id}")

public User getUser(@PathVariable Long id) {

return userService.getUserById(id); // 像調用本地方法一樣

}

}

適用場景:對性能要求高的微服務項目,尤其適合國內企業,集成Spring Boot后使用簡單。

五、構建工具:Maven/Gradle——“項目的管家”

寫代碼只是開發的一部分,更麻煩的是管理依賴(比如引入Spring Boot需要哪些JAR包)、編譯打包、運行測試。構建工具就是幫你自動化這些流程的“管家”。

1. Maven:最主流的“依賴管理工具”

是什么:Maven基于項目對象模型(POM),通過pom.xml文件管理依賴和構建流程。

核心功能

依賴管理:通過標簽聲明依賴,Maven自動從中央倉庫下載JAR包,解決“找不到類”的問題;

構建生命周期:clean(清理)compile(編譯)test(測試)package(打包)install(安裝到本地倉庫),一鍵執行;

多模塊管理:大型項目拆分成多個模塊(如user-module、order-module),通過父POM統一管理依賴版本。

pom.xml示例(引入Spring Boot依賴):

xml

org.springframework.boot

spring-boot-starter-web

2.7.0

2. Gradle:更靈活的“新一代構建工具”

是什么:Gradle基于Groovy/Kotlin DSL,結合了Maven的依賴管理和Ant的靈活性,現在Spring Boot官方推薦用Gradle構建。

核心優勢

簡潔的語法:Groovy DSL比XML更簡潔,比如聲明依賴只用implementation &'org.springframework.boot:spring-boot-starter-web:2.7.0&';

增量構建:只重新編譯修改過的文件,構建速度比Maven快;

靈活定制:可以通過代碼自定義構建邏輯,適合復雜項目。

build.gradle示例

groovy

dependencies {

implementation &'org.springframework.boot:spring-boot-starter-web:2.7.0&'

testImplementation &'org.springframework.boot:spring-boot-starter-test:2.7.0&'

}

怎么選:老項目多用Maven,新項目推薦Gradle(尤其Spring生態),語法更現代,構建更快。

六、測試框架:JUnit/Mockito——“代碼質量的保障”

“寫完代碼就上線”是開發大忌,測試框架幫你自動化測試,確保代碼邏輯正確。

1. JUnit:Java單元測試的“標準”

是什么:JUnit是最常用的單元測試框架,通過注解(如@Test)標記測試方法,自動運行并驗證結果。

上手示例(測試UserService):

public class UserServiceTest {

private UserService userService = new UserServiceImpl();

@Test

public void testGetUserById() {

User user = userService.getUserById(1L);

assertNotNull(user); // 斷言用戶不為null

assertEquals("張三", user.getUsername()); // 斷言用戶名正確

}

}

```

2. Mockito:“模擬”依賴的測試神器

是什么:當測試一個類時,它依賴的其他類(如數據庫、遠程服務)可能不穩定,Mockito可以“模擬”這些依賴,專注測試當前類的邏輯。

上手示例(模擬UserMapper測試UserService):

public class UserServiceTest {

@Mock // 模擬UserMapper

private UserMapper userMapper;

@InjectMocks // 把模擬的mapper注入到service

private UserServiceImpl userService;

@BeforeEach // 每個測試方法前執行

void setUp() {

MockitoAnnotations.openMocks(this); // 初始化Mock

}

@Test

public void testGetUserById() {

// 模擬mapper返回結果

when(userMapper.findById(1L)).thenReturn(new User(1L, "李四", 25));

User user = userService.getUserById(1L);

assertEquals("李四", user.getUsername()); // 驗證service邏輯

}

}

```

如何選擇框架?記住這3個原則

看業務需求:簡單CRUD用Hibernate,復雜SQL用MyBatis;小項目用Spring Boot,大項目拆微服務用Spring Cloud/Dubbo。

看團隊熟悉度:別盲目追新,團隊熟悉Maven就先用Maven,熟悉Spring就別強行上其他框架。

看社區活躍度:選文檔多、Stack Overflow上問題多的框架(比如Spring生態、MyBatis),遇到問題容易解決。

框架是開發者的“工具”,核心是幫我們更高效地解決問題。與其糾結“學不完的框架”,不如先把Spring Boot+MyBatis這對“黃金組合”吃透——這兩個框架幾乎能覆蓋80%的Java開發場景。等基礎扎實了,再根據業務需求擴展微服務、測試等工具,技術棧自然就豐富起來了。

12 12 分享:

相關課程

發表評論

登錄后才能評論,請登錄后發表評論...
提交評論

最新課程

最新專題

超级乱淫伦动漫| 国产亚洲精品成人a在线| 精品国产亚一区二区三区| 四虎影视精品永久免费网站 | 日韩男人天堂| 99热精品一区| 国产精品自拍一区| 久久久成人影院| 99热热久久| 九九久久国产精品| 国产成a人片在线观看视频| 夜夜操天天爽| 亚州视频一区二区| 成人免费网站视频ww| 尤物视频网站在线| 天天做日日爱夜夜爽| 国产精品123| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产麻豆精品免费视频| 日韩欧美一及在线播放| 精品在线视频播放| 日韩一级黄色| 国产极品精频在线观看| 精品视频免费看| 天天做日日爱夜夜爽| 国产福利免费视频| 国产视频一区二区三区四区 | 欧美一区二区三区在线观看| 国产一区二区精品久久91| 精品在线观看国产| 国产成人精品影视| 国产综合91天堂亚洲国产| 99久久网站| 免费一级片在线观看| 九九九网站| 成人高清视频免费观看| 亚飞与亚基在线观看| 91麻豆精品国产片在线观看| 二级特黄绝大片免费视频大片| 亚洲精品中文一区不卡| 黄视频网站免费| 精品久久久久久中文字幕一区 | 国产一级生活片| 日日日夜夜操| 免费国产在线观看| 国产一区国产二区国产三区| 精品久久久久久中文| 国产视频一区在线| 免费国产在线观看不卡| 精品视频在线观看一区二区三区| 久久久成人网| 欧美国产日韩一区二区三区| 成人免费一级纶理片| 免费国产在线观看| 国产一区二区精品| 精品视频在线观看免费| 久久99中文字幕久久| 国产不卡高清在线观看视频| 久久精品道一区二区三区| 国产a视频精品免费观看| 国产成人精品影视| 四虎影视久久久| 青青青草影院| 精品国产一区二区三区久 | 亚洲天堂免费观看| a级黄色毛片免费播放视频| 中文字幕一区二区三区精彩视频 | 日日日夜夜操| 欧美激情一区二区三区视频 | 日韩一级黄色| 欧美激情一区二区三区在线| 久久精品大片| 一级女性全黄久久生活片| 香蕉视频一级| 可以在线看黄的网站| 欧美激情一区二区三区视频 | 精品视频一区二区三区免费| 一本高清在线| 亚洲精品影院| 午夜在线观看视频免费 成人| 天天做日日爱夜夜爽| 免费国产一级特黄aa大片在线| 欧美电影免费| 91麻豆tv| 九九免费精品视频| 日本在线不卡视频| 麻豆系列 在线视频| 99久久网站| 国产亚洲精品aaa大片| 欧美激情伊人| 精品视频在线观看视频免费视频| 天堂网中文字幕| 天天做人人爱夜夜爽2020 | 国产伦精品一区三区视频| 成人影视在线播放| 美国一区二区三区| 999精品视频在线| 午夜在线影院| 亚飞与亚基在线观看| 国产成a人片在线观看视频| 亚洲www美色| 欧美激情影院| 久久精品店| 麻豆系列国产剧在线观看| 九九久久99| 国产一区二区精品| 日韩免费在线观看视频| 尤物视频网站在线观看| 欧美18性精品| 九九精品在线| 黄视频网站免费| 午夜家庭影院| 欧美激情一区二区三区在线 | 国产精品1024永久免费视频| 国产一区二区精品久久91| 亚洲精品中文字幕久久久久久| 高清一级做a爱过程不卡视频| 国产综合91天堂亚洲国产| 国产激情一区二区三区| 久久精品欧美一区二区| 可以在线看黄的网站| 九九精品在线播放| 国产美女在线一区二区三区| 日本免费乱理伦片在线观看2018| 香蕉视频久久| 精品视频一区二区三区| 成人免费高清视频| 一级毛片看真人在线视频| 免费国产在线观看| 可以免费在线看黄的网站| 九九精品在线播放| 日日夜人人澡人人澡人人看免| 亚洲精品久久久中文字| 人人干人人草| 青青青草影院| 日本特黄特色aa大片免费| 国产91精品一区二区| 国产不卡在线看| 午夜欧美成人久久久久久| 黄视频网站免费看| 高清一级片| 99色播| 欧美日本韩国| 色综合久久久久综合体桃花网| 青青青草影院| 一级毛片视频在线观看| 日韩av东京社区男人的天堂| 黄视频网站在线看| 韩国妈妈的朋友在线播放| 成人a大片在线观看| 91麻豆爱豆果冻天美星空| 国产91丝袜在线播放0| 精品美女| 国产麻豆精品免费密入口| 高清一级淫片a级中文字幕| 欧美激情一区二区三区在线| 国产一区二区福利久久| 亚飞与亚基在线观看| 沈樵在线观看福利| 国产伦精品一区二区三区无广告 | 免费的黄视频| 97视频免费在线| 精品久久久久久中文字幕一区 | 欧美激情一区二区三区视频| 91麻豆精品国产高清在线| 亚洲 激情| 亚欧成人毛片一区二区三区四区| 中文字幕Aⅴ资源网| 国产综合91天堂亚洲国产| 黄视频网站免费| 美女免费毛片| 台湾毛片| 久久99中文字幕| 国产一区二区精品| 国产网站免费视频| 天天做人人爱夜夜爽2020 | 青青久在线视频| 国产伦理精品| 免费的黄色小视频| 国产国语对白一级毛片| 日韩男人天堂| 天天做日日爱夜夜爽| a级毛片免费全部播放| 亚飞与亚基在线观看| 久久精品人人做人人爽97| 亚洲第一页色| 久久99中文字幕久久| 日韩一级黄色片| 国产伦精品一区二区三区在线观看| 日韩免费在线视频| 国产91精品一区二区| 黄视频网站免费看| 超级乱淫伦动漫| 美女免费精品视频在线观看| 毛片电影网| 日韩中文字幕一区二区不卡| 日本乱中文字幕系列 | 欧美另类videosbestsex高清| 国产亚洲免费观看| 国产高清在线精品一区二区|