当前位置: 首页 > article >正文

搭建普通 Spring IoC 项目

Spring 框架的核心特性之一是控制反转(IoC),它通过依赖注入(DI)来管理对象的生命周期和相互依赖关系。本文将指导你如何搭建一个普通的 Spring IoC 项目。

 准备工作

JDK:确保已安装 JDK(推荐 JDK 8 或更高版本),可以在命令行输入 java -version 检查。
IDE:推荐使用 IntelliJ IDEA 或 Eclipse,便于管理和开发 Java 项目。
Maven:我们将使用 Maven 进行依赖管理,确保已安装 Maven。可以在命令行输入 mvn -v 检查安装情况。

创建 Maven 项目

在 IDE 中创建一个新的 Maven 项目:

1. 打开 IntelliJ IDEA,选择 New Project > Maven。
2. 填写项目的基本信息,如 Group ID 和 Artifact ID。
3. 完成创建向导,生成项目结构。

配置 pom.xml

打开 pom.xml 文件,添加 Spring IoC 相关依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>spring-ioc-example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- Spring Core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.20</version>
        </dependency>
        <!-- JUnit (用于单元测试) -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

 创建 Spring 配置文件

在 src/main/resources 目录下创建 applicationContext.xml 文件,这是 Spring 的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 定义 Bean -->
    <bean id="userService" class="com.example.service.UserService" />
    <bean id="userDao" class="com.example.dao.UserDao" />
</beans>

id:bean对象的id,唯⼀标识。⼀般是Bean对象的名称的⾸字⺟⼩写

class:bean对象的类路径

 创建 Bean 类

在 src/main/java/com/example/service 目录下创建 UserService 类:

package com.example.service;

import com.example.dao.UserDao;

public class UserService {
    private UserDao userDao;

    // 构造器注入
    public UserService(UserDao userDao) {
        this.userDao = userDao;
    }

    public void createUser(String username) {
        userDao.save(username);
        System.out.println("User " + username + " created.");
    }
}

在 src/main/java/com/example/dao 目录下创建 UserDao 类:

package com.example.dao;

public class UserDao {
    public void save(String username) {
        System.out.println("User " + username + " saved to the database.");
    }
}

 创建主程序

在 src/main/java/com/example 目录下创建 App 类,用于启动 Spring IoC 容器:

package com.example;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.example.service.UserService;

public class App {
    public static void main(String[] args) {
        // 加载 Spring 配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        // 获取 UserService Bean
        UserService userService = (UserService) context.getBean("userService");

        // 使用 UserService
        userService.createUser("Alice");
    }
}

 运行项目

在 IDE 中运行 App 类,控制台输出应如下所示:

User Alice saved to the database.
User Alice created.

通过以上步骤,我们成功搭建了一个普通的 Spring IoC 项目,并实现了基本的依赖注入。


http://www.kler.cn/a/372662.html

相关文章:

  • 油猴脚本-GPT问题导航侧边栏增强版
  • https://huggingface.co/上的模型无法用linux服务器clone怎么办(只需要稍微改一下网址,就可以切换到镜像下载)
  • Vim编辑器的应用与实践:让你的文本编辑更高效
  • 【解决方案】Mac上禁止chrome自动更新的三种方法
  • C++中如何获取时间并格式化为字符串?
  • 17 Docker容器存储架构:docker存储持久化-bind mount
  • 白立新:人工智能爆发,倒逼人类走向“三体全能”
  • 阿里巴巴店铺商品API返回值中的商品分类与筛选条件
  • QT如何给视频打时标
  • PG数据库之事务处理
  • 域渗透AD渗透攻击利用 python脚本攻击之IPC连接 以及 python生成exe可执行程序讲解方式方法
  • 「Mac畅玩鸿蒙与硬件7」鸿蒙开发环境配置篇7 - 使用命令行工具和本地模拟器管理项目
  • Spring Boot 安全 API 构建:加密解密功能的卓越实践
  • Linux 上安装 conda 步骤实现
  • 一、ARMv8寄存器之通用、状态、特殊寄存器
  • String常量池
  • 【秋招笔试-支持在线评测】10.30花子秋招(已改编)-三语言题解
  • Codeforces Global Round 27 D.Yet Another Real Number Problem
  • 双11来了,云计算优惠大集合
  • android 10 后台启动activity
  • Unity Editor 快速移动资源
  • VB中如何创建和使用自定义控件
  • 【动手学电机驱动】 STM32-FOC(1)IHM03 电机控制套件的介绍
  • 微服务技术,SpringCloudAlibaba,Redis,RocketMQ,Docker,分库分表
  • 基于SSM+VUE园艺生活植物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
  • 一七一、React性能优化方式