首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring 框架入門:打造第一個 Hello World 專案完整實戰

     編輯:Java 相關知識

Spring 框架簡介

  • 定位:企業級 Java 應用開發最流行框架
  • 核心:IoC 容器、DI 依賴注入、AOP 面向切面
  • 優勢:POJO 開發、模組化、整合既有技術、易測試、輕量級
  • 版本:現代專案建議直接使用 Spring Boot 3.x (基於 Spring 6、JDK 17+)

手動搭建 Spring 專案步驟 (教學用,生產請用 Spring Boot)

步驟 1:建立 Java 專案

Eclipse:File → New → Java Project,專案名 HelloSpring

步驟 2:加入必要 JAR (Maven 專案請跳過,直接配置 pom.xml)

右鍵專案 → Build Path → Configure Build Path → Libraries → Add External JARs:

  • Spring 核心:spring-core、spring-beans、spring-context、spring-expression、spring-aop
  • 日誌:commons-logging
  • (舊版) spring-asm、spring-aspects、spring-context-support

步驟 3:建立原始碼

// src/com/example/HelloWorld.java
package com.example;

public class HelloWorld {
    private String message;
    
    public void setMessage(String message) { this.message = message; }
    public void getMessage() { System.out.println("Your Message: " + message); }
}
// src/com/example/MainApp.java
package com.example;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
    public static void main(String[] args) {
        // 1. 載入容器,解析 beans.xml
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        
        // 2. 從容器獲取 Bean
        HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
        
        // 3. 使用 Bean
        obj.getMessage();
    }
}

步驟 4:建立 Bean 配置文件 (src/beans.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="https://www.springframework.org/schema/beans"
       xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.springframework.org/schema/beans 
       https://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="helloWorld" class="com.example.HelloWorld">
        <property name="message" value="Hello World!"/>
    </bean>
</beans>

步驟 5:執行程式

  • 右鍵 MainApp.java → Run As → Java Application
  • 輸出:Your Message: Hello World!

核心概念解析

ApplicationContext - 核心容器介面

  • ClassPathXmlApplicationContext:從類路徑載入 XML 配置
  • FileSystemXmlApplicationContext:從檔案系統載入
  • AnnotationConfigApplicationContext:從註解配置類載入 (現代主流)

Bean 定義與生命週期

<bean id="beanId" class="fully.qualified.ClassName" 
      scope="singleton|prototype" 
      init-method="initMethodName" 
      destroy-method="destroyMethodName">
    <property name="propertyName" value="value" />
    <property name="refProperty" ref="otherBeanId" />
</bean>
  • id:唯一標識,getBean("id") 獲取
  • class:完整類名
  • property:Setter 注入,name 對應屬性名,value/ref 對應字面值/Bean 參考
  • scope:singleton (預設,單例)、prototype (每次新建)

現代化改寫:Spring Boot 3.x (強烈推薦)

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.0</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

主程式 (無 XML、自動配置)

@SpringBootApplication
public class Application implements CommandLineRunner {
    @Autowired HelloWorld helloWorld;
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    
    @Override
    public void run(String... args) {
        helloWorld.getMessage();
    }
}

元件 (自動掃描註冊)

@Component
public class HelloWorld {
    @Value("${app.message:Hello Spring Boot!}")
    private String message;
    
    public void getMessage() { System.out.println("Your Message: " + message); }
}

配置 (application.properties)

app.message=Hello Spring Boot 3!

常見問題排查

問題原因解決
ClassNotFoundExceptionJAR 未加入 Build Path檢查 Libraries、Maven 依賴
FileNotFoundException: beans.xml配置檔不在 classpath放在 src/ 根目錄或 resources/
NoSuchBeanDefinitionExceptionBean id 拼錯或未定義核對 id、package 掃描範圍
BeanCreationException建構子/Setter 異常查看堆疊追蹤、檢查依賴注入

學習路線建議

  1. 掌握 IoC/DI 基礎 (XML → 註解)
  2. 理解 Bean 生命週期、作用域
  3. 學習 AOP 基礎與事務管理
  4. 實戰 Spring MVC / WebFlux
  5. 進階 Spring Data JPA、Security、Batch
  6. 全面拥抱 Spring Boot:自動配置、Starter、Actuator、測試支援
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved