快速学习Spring

Spring 简介

Spring 是一个开源的轻量级、非侵入式的 JavaEE 框架,它为企业级 Java 应用提供了全面的基础设施支持。Spring 的设计目标是简化企业应用的开发,并解决 Java 开发中常见的复杂性和低效率问题。

Spring常用依赖

<dependencies>
    <!-- Spring 核心容器,包括 ApplicationContext 等 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.14</version> <!-- 替换为您需要的版本号 -->
    </dependency>

    <!-- Spring AOP 相关依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>5.3.14</version> <!-- 替换为您需要的版本号 -->
    </dependency>

    <!-- Spring 对 JDBC 的支持 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.14</version> <!-- 替换为您需要的版本号 -->
    </dependency>

    <!-- Spring 对事务的支持 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.3.14</version> <!-- 替换为您需要的版本号 -->
    </dependency>
</dependencies>

Spring 优点

  1. IoC 容器:Spring 的核心是一个 IoC(Inversion of Control,控制反转)容器,它负责管理应用中的组件(Bean),并通过依赖注入将它们装配在一起。这种方式降低了类之间的耦合度,使得代码更易于维护和测试。
  2. AOP 支持:Spring 提供了 AOP(Aspect-Oriented Programming,面向切面编程)的支持,可以方便地实现横切关注点的功能,如事务管理、日志记录等,从而提高代码的模块化和可重用性。
  3. 事务管理:Spring 提供了强大且灵活的事务管理支持,可以通过声明式事务或编程式事务来管理数据库事务,确保数据操作的一致性和可靠性。
  4. 数据访问:Spring 提供了对 JDBC、ORM(如 Hibernate、MyBatis)、NoSQL 数据库(如 MongoDB、Redis)等数据访问技术的集成支持,简化了数据访问层的开发。
  5. MVC 框架:Spring MVC 是一个基于前端控制器模式的 Web MVC 框架,提供了灵活的配置和强大的扩展性,帮助开发者构建响应式和可扩展的 Web 应用程序。
  6. 集成支持:Spring 提供了对各种第三方框架和技术的集成支持,如 JMS、JMX、Quartz 等,使得整合其他技术变得更加简单。
  7. 测试支持:Spring 提供了测试类和测试环境的支持,可以轻松编写单元测试、集成测试和端到端测试,帮助开发者保持代码质量和可靠性。

一、第一个Spring项目

1.1 创建项目工程

首先我们使用IDEA开发工具或Eclipse去创建一个名为 “first-spring”的maven项目。

1.2 导入依赖

在pom.xml中导入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.14</version>
        </dependency>
    </dependencies>

1.3 编写代码 

在java包下创建一个名为pojo实体类包中创建一个 User类

public class User {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

1.4 创建Spring文件

在resources包下创建spring文件,名为 application-context.xml

<?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">


</beans>

1.4.1 bean标签

bean 标签就是用来创建 Java对象的。

属性有

id: 就是对象的唯一名字

class: 是对象类具体的位置

<property>: property 标签是bean中的设置属性,可以将特定的值或引用注入到bean的属性中。 

    <bean id="user" class="com.na.pojo.User">
        <property name="name" value="香菜的开发日记"/>
    </bean>

以上就是通过bean去创建了一个User对象,并且为name 赋特定的值。

 1.5 运行测试

创建一个名为 MyTest的类。

public class MyTest {
    public static void main(String[] args) {
        // 获取 Spring 的上下文对象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");

        // 在Spring当中去寻找对象
        // getBean("user") user就是我们在xml文件中 bean标签的 id属性值
        User user = (User) applicationContext.getBean("user");
        System.out.println(user.toString());
    }
}

二、依赖注入

在依赖注入中,不必创建对象,但必须描述如何创建它们。

通常依赖主义可以捅咕哦三种方式完成。即:

2.1 构造函数注入

2.2 setter注入

2.3 接口注入

未完待续

相关推荐

  1. Spring Boot 快速入门

    2024-02-14 02:30:02       38 阅读
  2. Spring Cache 快速入门

    2024-02-14 02:30:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-14 02:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-14 02:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-14 02:30:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-14 02:30:02       20 阅读

热门阅读

  1. 2024/2/8

    2024-02-14 02:30:02       29 阅读
  2. <s-table>、<a-table>接收后端数据

    2024-02-14 02:30:02       29 阅读
  3. 【无标题】

    2024-02-14 02:30:02       28 阅读
  4. 水题中的稀奇古怪trick合集

    2024-02-14 02:30:02       38 阅读
  5. 数据治理领域的框架、标准与模型

    2024-02-14 02:30:02       36 阅读
  6. 前端架构: 本地调试脚手架的2种方式

    2024-02-14 02:30:02       32 阅读
  7. 极其抽象的路由

    2024-02-14 02:30:02       26 阅读
  8. 蚁群算法实现

    2024-02-14 02:30:02       32 阅读
  9. 突破编程_C++_基础教程(输入、输出与文件)

    2024-02-14 02:30:02       21 阅读