广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >IOC使用Spring实现附实例详解
  • 719
分享到

IOC使用Spring实现附实例详解

javamavenspringmybatis 2023-09-02 21:09:15 719人浏览 泡泡鱼
摘要

目录 一、相关导读 1. Maven系列专栏文章 2. Mybatis系列专栏文章 3. Spring系列专栏文章 二、前言 Spring简介 Spring体系结构 三、Spring实现IOC 1. 创建Maven工程,引入对应依赖 2.

目录

一、相关导读

1. Maven系列专栏文章

2. Mybatis系列专栏文章

3. Spring系列专栏文章

二、前言

Spring简介

Spring体系结构

三、Spring实现IOC

1. 创建Maven工程,引入对应依赖

2. 创建实体类,Dao接口及实现类

3. 编写xml配置文件

4. 测试从Spring容器获取对象

5. 测试结果

四、Spring容器类型

1. 容器接口

2. ApplicationContext容器实现类

3. 测试从磁盘读取配置文件

4. 测试结果


一、相关导读

        大家如果对于本期内容有什么不了解的话也可以去看看往期的内容,下面列出了博主往期精心制作的Mavenmybatis等专栏系列文章,走过路过不要错过哎!如果对您有所帮助的话就点点赞,收藏一下啪。其中spring专栏有些正在更,所以无法查看,但是当博主全部更完之后就可以看啦。

1. Maven系列专栏文章

Maven系列专栏Maven工程开发
Maven聚合开发【实例详解---5555字】

2. Mybatis系列专栏文章

Mybatis系列专栏MyBatis入门配置
Mybatis入门案例【超详细】
MyBatis配置文件 —— 相关标签详解
Mybatis模糊查询——三种定义参数方法和聚合查询、主键回填
Mybatis动态SQL查询 --(附实战案例--8888个字--88质量分)
Mybatis分页查询——四种传参方式
Mybatis一级缓存和二级缓存(带测试方法)
Mybatis分解式查询
Mybatis关联查询【附实战案例】
MyBatis注解开发---实现增删查改和动态SQL
MyBatis注解开发---实现自定义映射关系和关联查询

3. Spring系列专栏文章

Spring系列专栏Spring IOC 入门简介【自定义容器实例】
IOC使用Spring实现附实例详解
Spring IOC之对象的创建方式、策略及销毁时机和生命周期且获取方式
Spring DI简介及依赖注入方式和依赖注入类型
Spring IOC相关注解运用——上篇
Spring IOC相关注解运用——下篇
Spring AOP简介及相关案例
注解、原生Spring、SchemaBased三种方式实现AOP【附详细案例】
Spring事务简介及相关案例
Spring 事务管理方案和事务管理器及事务控制的API
Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

二、前言

Spring简介

        Spring是一个开源框架,为简化企业级开发而生。它以ioc(控制反转)和aop(面向切面)为思想内核,提供了控制层springMVC、数据层SpringData、服务层事务管理等众多技术,并可以整合众多第三方框架。Spring将很多复杂的代码变得优雅简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。
Spring官网地址:Spring | Home

Spring官方网站:

Spring体系结构

        Spring框架根据不同的功能被划分成了多个模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。

  1. Core Container:Spring核心模块,任何功能的使用都离不开该模块,是其他模块建立的基础。
  2. Data Access/Integration:该模块提供了数据持久化的相应功能。
  3. WEB:该模块提供了web开发的相应功能。
  4. AOP:提供了面向切面编程实现
  5. Aspects:提供与AspectJ框架的集成,该框架是一个面向切面编程框架。
  6. Instrumentation:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
  7. Messaging:为Spring框架集成一些基础的报文传送应用
  8. Test:提供与测试框架的集成

三、Spring实现IOC

​ 

接下来我们使用Spring实现IOC,Spring内部也有一个容器用来管理对象。

1. 创建Maven工程,引入对应依赖

                        org.springframework            spring-context            5.3.13                            junit            junit            4.12            test            

2. 创建实体类,Dao接口及实现类

Student实体类

package com.example.pojo;public class Student {    private int id;    private String name;    private String address;    public Student(int id, String name, String address) {        this.id = id;        this.name = name;        this.address = address;    }    public Student(){}    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    @Override    public String toString() {        return "Student[ " +                "id=" + id +                ", name='" + name + '\'' +                ", address='" + address + '\'' +                " ]";    }}

StudentDao接口

package com.example.dao;import com.example.pojo.Student;public interface StudentDao {    // 根据id查询学生    Student findById(int id);}

StudentDao接口实现类StudentDaoImpl1

package com.example.dao;import com.example.pojo.Student;public class StudentDaoImpl1 implements StudentDao{    public StudentDaoImpl1() {    }    public StudentDaoImpl1(int a){};    @Override    public Student findById(int id){        return new Student(id,"程序员","北京");    }}

3. 编写xml配置文件

    

4. 测试从Spring容器获取对象

package com.example;import com.example.dao.StudentDao;import com.example.service.StudentService;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class TestContainer {    @Test    public void t1(){        // 创建Spring容器        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");        // 从容器中获取对象        StudentDao studentDao1 = ac.getBean("studentDao",StudentDao.class);        StudentDao studentDao2 = ac.getBean("studentDao",StudentDao.class);        System.out.println(studentDao1.hashCode());        System.out.println(studentDao2.hashCode());        System.out.println(studentDao1.findById(1));    }}

5. 测试结果

OK,同样返回两个对象的哈希值都是一样的,说明了确实是从容器中获取同一个对象。 

四、Spring容器类型

1. 容器接口

  • BeanFactory:BeanFactory是Spring容器中的顶层接口,它可以对Bean对象进行管理。
  • ApplicationContext:ApplicationContext是BeanFactory的子接口。它除了继承 BeanFactory的所有功能外,还添加了对国际化、资源访问、事件传播等方面的良好支持。ApplicationContext有以下三个常用实现类:

2. ApplicationContext容器实现类

  1. ClassPathXmlApplicationContext:该类可以从项目中读取配置文件
  2. FileSystemXmlApplicationContext:该类从磁盘中读取配置文件
  3. AnnotationConfigApplicationContext:使用该类不读取配置文件,而是会读取注解

3. 测试从磁盘读取配置文件

    @Test    public void t2(){        // 创建spring容器        ApplicationContext ac = new FileSystemXmlApplicationContext("C:\\JavaProjects\\06SSM_Projects\\springdemo\\spring_ioc1\\src\\main\\resources\\bean.xml");        // 从容器中获取对象        StudentDao userDao = ac.getBean("studentDao",StudentDao.class);        System.out.println(userDao);        System.out.println(userDao.findById(1));;    }

4. 测试结果

        OK,本次使用Spring实现IOC就到这里了,上述讲到的三个实现类会在接下来中多次使用,希望对大家有所帮助 

来源地址:https://blog.csdn.net/qq_53317005/article/details/129780496

--结束END--

本文标题: IOC使用Spring实现附实例详解

本文链接: https://www.lsjlt.com/news/391424.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • IOC使用Spring实现附实例详解
    目录 一、相关导读 1. Maven系列专栏文章 2. Mybatis系列专栏文章 3. Spring系列专栏文章 二、前言 Spring简介 Spring体系结构 三、Spring实现IOC 1. 创建Maven工程,引入对应依赖 2....
    99+
    2023-09-02
    java maven spring mybatis
  • Spring IOC 常用注解与使用实例详解
    目录@Component@Autowired@Qualifier@Bean@ImportResource@Profile@PropertySource@Component 注解@co...
    99+
    2022-11-13
  • 详解JavaSE实现IoC
    目录JavaSE中的IoC实现方式Java BeansSPIJNDI方式JavaSE中的IoC实现方式 Java SE 提供了三种方式,可以实现IoC,分别为: Java ...
    99+
    2022-11-12
  • Spring Ioc和DI注解实例分析
    今天小编给大家分享一下Spring Ioc和DI注解实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.Sp...
    99+
    2023-06-29
  • Spring IOC容器使用详细讲解
    目录Spring IOCIOC容器在Spring中的实现ApplicationContext的主要实现类ClassPathXmlApplicationContext获取BeanSpr...
    99+
    2022-12-21
    Spring IOC容器 Spring IOC
  • Spring的Ioc模拟实现详细介绍
    简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供;Spring里面就是IOC容器。例如:在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下pub...
    99+
    2023-05-30
    spring ioc sprin
  • Spring使用IOC与DI实现完全注解开发
    方式一:@Component + @ComponentScan + @Value + @Autowired 首先还是pom文件,maven项目依赖必不可少。 <depende...
    99+
    2022-11-13
  • ioc如何利用Spring boot实现
    这篇文章将为大家详细讲解有关ioc如何利用Spring boot实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。项目结构实际上三四个类完全能搞定这个简单的ioc容器,但是出于可扩展性的考虑...
    99+
    2023-05-31
    springboot ioc
  • 使用Spring自定义实现IOC和依赖注入(注解方式)
    目录大致思路:注解实现方式:xml实现方式:1. 引入相关jar2. 定义注解类ExtService是注解类的, ExtResource是注解属性的3.定义一个借口4. 接口和使用注...
    99+
    2022-11-12
  • Spring中利用IOC实现注入的方式
    目录1.环境搭建2.注入方式2.1.配置文件2.1.1.Set注入2.1.2.构造器注入2.2.注解注入3.获取方式4.Bean关系5.Bean生命周期6.Bean作用域1.环境搭建...
    99+
    2023-05-16
    Spring IOC注入 Spring注入方式
  • Spring-IOC容器中的常用注解与使用方法详解
    Spring是什么? Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的Java...
    99+
    2022-11-12
  • C#使用Unity实现IOC
    一、什么是IOC 学习IOC之前先来了解一个依赖导致原则(DIP),依赖导致原则是IOC的核心原理。 依赖导致:即上层模块不应该依赖于低层模块,二者应该通过抽象来依赖。依赖于抽象,而...
    99+
    2022-11-13
  • Spring+EHcache缓存实例详解
    一、ehcahe的介绍EhCache 是一个纯Java的进程内缓存框架,具有高速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻...
    99+
    2023-05-31
    spring ehcache 缓存
  • Python for循环详解【附代码实例】
    文章目录 一、for循环二、for循环语法如下三、 for循环应用案例案例一:for循环实现方式案例二:遍历字典案例三:for循环嵌套 四、总结for循环与while循环的异同五、for...
    99+
    2023-09-25
    python 服务器 linux
  • Spring实现泛型注入的示例详解
    目录1.Spring泛型注入2. 关于java泛型有四种TypeGenericArrayType泛型数组类型ParameterizedType参数化类型TypeVariable 类型...
    99+
    2022-11-13
  • java中Spring Security的实例详解
    java中Spring Security的实例详解spring security是一个多方面的安全认证框架,提供了基于JavaEE规范的完整的安全认证解决方案。并且可以很好与目前主流的认证框架(如CAS,中央授权系统)集成。使用spring...
    99+
    2023-05-31
    java spring security
  • Spring Boot 整合 Reactor实例详解
    目录引言1 创建项目2 集成 H2 数据库3 创建测试类3.1 user 实体3.2 UserRepository3.3 UserService3.4 UserController3...
    99+
    2022-11-13
  • Spring注解实现Bean自动装配示例详解
    何为自动装配 自动装配是 Spring 满足 bean 依赖的一种方式。 在使用 Spring 配置 bean 时,我们都要给配置的 bean 的属性设置一个值,如果不手动设置则都...
    99+
    2022-11-11
  • Android编程实现泡泡聊天界面实例详解(附源码)
    本文实例讲述了Android编程实现泡泡聊天界面的方法。分享给大家供大家参考,具体如下: 昨天写了个界面,实现了Android泡泡聊天界面。运行结果如下,点击发送按钮,屏幕就显...
    99+
    2022-06-06
    界面 源码 Android
  • 实例详解uniapp如何实现电话录音功能(附代码)
    本篇文章给大家带来了关于uniapp的相关知识,其中主要介绍了怎么用uniapp实现拨打电话并且还能同步录音的功能,感兴趣的朋友一起来看一下吧,希望对大家有帮助。uniapp 实现打电话录音功能最近需要实现一个通过 uniapp 调用手机拨...
    99+
    2023-05-14
    uni-app
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作