Spring——IoC基本概念的理解,IDEA中使用Maven搭建Spring框架、运行第一个Spring程序

简介: Spring——IoC基本概念的理解,IDEA中使用Maven搭建Spring框架、运行第一个Spring程序

文章目录:


1.Spring IoC的基本概念

1.1 IoC中的控制和反转 

1.2 IoC的技术实现 

1.3 Spring框架使用DI实现IoC

2.搭建Spring框架 

2.1 创建Maven项目

2.2 对项目中的某些特定内容进行修改

2.3 pom.xml文件中加入相关依赖

2.4 定义相关的接口和实现类

2.5 创建Spring配置文件

2.6 编写测试类及测试方法

2.7 代码运行结果

写在结尾:Spring框架搭建的基本流程

1.Spring IoC的基本概念


控制反转(IoCInversion of Control),是一个理论,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理。IoC 是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式是依赖注入。应用广泛。 

也就是说,指导开发人员如何使用对象、管理对象,把对象的创建、属性赋值、声明周期都交给代码之外的容器管理。


1.1 IoC中的控制和反转 


控制:对象创建、属性赋值,声明周期管理。

反转:把开发人员管理对象的权限转移给了代码之外的容器实现,由容器完成对象的管理。

正转:开发人员在代码中,使用 new 构造方法创建对象,开发人员掌握了对象的创建、属性赋值,对象从开始到销毁的全部过程,开发人员都具有对对象的全部控制权限。

通过容器,可以使用容器中的对象(容器已经创建了对象,对对象属性赋值了,对象也组装好了)。

其实Spring就是一个容器,可以管理对象、创建对象、给对象属性赋值。 


1.2 IoC的技术实现 

DIDependency Injection,依赖注入),程序代码不做定位查询,这些工作由容器自行完成。

依赖注入 DI 是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。Spring 的依赖注入对调用者与被调用者几乎没有任何要求,完全支持对象之间依赖关系的管理。


1.3 Spring框架使用DI实现IoC

Spring框架使用依赖注入(DI)实现 IoC

Spring容器是一个超级大工厂,负责创建、管理所有的 Java 对象,这些Java 对象被称为 BeanSpring 容器管理着容器中 Bean 之间的依赖关系,Spring 使用依赖注入的方式来管理 Bean 之间的依赖关系。使用 IoC 实现对象之间的解耦和。 

通过Spring框架,只需要提供要使用的对象名词就可以了,从容器中获取名称对应的对象。

SPringle底层使用的反射机制,通过反射创建对象及其属性。

2.搭建Spring框架


首先 File → New → Project → 选择最下面的空项目(Empty Project),创建一个空项目。

2.1 创建Maven项目

在空项目中,新建一个模块,使用Maven 

2.2 对项目中的某些特定内容进行修改

上面这些都完成之后,可以看到下图所示的Spring框架的结构:👇👇👇(将图中所示的包下的两个类删掉,那是默认创建的,我们不需要),同时在main目录下新建一个 resources 目录,将文件类型修改为 Resources Root

bjpowernode 包下,新创建一个 service 包,其中有一个接口。

2.3 pom.xml文件中加入相关依赖

<!-- spring依赖 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.2.5.RELEASE</version>
</dependency>
<!--单元测试-->
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

2.4 定义相关的接口和实现类

package com.bjpowernode.service;
/**
 *
 */
public interface SomeService {
    void doSome();
}
package com.bjpowernode.service.impl;
import com.bjpowernode.service.SomeService;
public class SomeServiceImpl implements SomeService {
    /**
     * spring默认使用的是无参构造方法来创建对象
     * 如果定义了有参构造方法,应该再定义一个无参构造方法
     */
    public SomeServiceImpl() {
        System.out.println("SomeServiceImpl的无参构造方法");
    }
    @Override
    public void doSome() {
        System.out.println("执行了业务方法doSome()");
    }
}

2.5 创建Spring配置文件

resources 目录下,创建一个名为 beans xml文件。(beans.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">
    <!--
        声明对象
        id: 自定义对象名称,唯一值 (可以没有,spring可以提供默认名称)
        class: 类的全限定名称,spring通过反射机制创建对象,不能是接口
        spring根据id、class创建对象,把对象放入到spring的一个map对象中
        map.put(id,对象)
    -->
    <bean id="someService" class="com.bjpowernode.service.impl.SomeServiceImpl" />
</beans>

2.6 编写测试类及测试方法

package com.bjpowernode;
import com.bjpowernode.service.SomeService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 *
 */
public class MyTest {
    //spring创建对象,调用类的哪个方法?
    //默认使用的是无参构造方法来创建对象
    @Test
    public void test01() {
        String config="beans.xml";
        /*
         * 创建spring容器对象的时候,会读取配置文件,创建文件中声明的Java对象
         * 优点:获取对象的速度快,因为对象已经创建好了
         * 缺点:占用内存
         */
        ApplicationContext ctx=new ClassPathXmlApplicationContext(config);
        SomeService service=ctx.getBean(SomeService.class);
        service.doSome();
    }
}

2.7 代码运行结果

写在结尾:Spring框架搭建的基本流程


使用Spring:Spring作为容器管理对象,开发人员从Spring中获取要使用的对象。
实现步骤:
1.新建Maven项目
2.加入依赖,修改pom.xml
  spring-context:spring依赖
  junit:单元测试
3.开发人员定义类:接口和实现类(类也可以没有接口)
4.创建spring配置文件,作用:声明对象。
   把对象交给spring创建和管理。
   使用<bean>表示对象声明,一个bean表示一个Java对象
5.使用容器中的对象。
   创建一个表示spring容器的对象:Application
   从容器中,根据名称获取对象,使用getBean("对象名称")
目录
打赏
0
0
0
0
85
分享
相关文章
|
7月前
|
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
307 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
12天前
|
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
31 0
|
3月前
|
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
102 18
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
445 1
Maven——创建 Spring Boot项目
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
127 1
如何使用 maven 创建一个 Spring Boot项目
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
343 0
idea+maven+tomcat+spring 创建一个jsp项目
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
本文提供了解决方案,如何在IDEA中创建Spring 2.X版本的项目并使用JDK8,尽管Spring 2.X已停止维护且IDEA不再直接支持,通过修改pom.xml或使用阿里云的国内源来创建项目。
315 0
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行

热门文章

最新文章

推荐镜像

更多