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

Spring IOC 小演示

首先建项目,可参考 https://blog.csdn.net/2303_79008526/article/details/141141114?spm=1001.2014.3001.5502

一、spring 环境搭建

(一)导相关坐标

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId><artifactId>spring_ioc_003</artifactId><version>1.0-SNAPSHOT</version><!-- 添加坐标 --><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.28</version></dependency></dependencies></project>

(二)搭建配置文件

我起名为 beans

(三)建包建类,写方法

package com.apesource.pojo;public class Student {
}
package com.apesource.dao;public interface IDao {public void save();
}
package com.apesource.dao;public class DaoImp implements IDao{@Overridepublic void save() {System.out.println("======Dao的新增方法======");}
}
package com.apesource.test;public class Test01 {
}

(四)找到需要以解耦方式获取实例的类,将需要spring管理的类注入spring容器

语法:<bean id="唯一标识" class="类"></bean>

<?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起名随意 --><bean id="student" class="com.apesource.pojo.Student"></bean><bean id="daoImp" class="com.apesource.dao.DaoImp"></bean></beans>

(五)向spring容器中索取java实例(解耦)

5.1.加载spring核心配置文件,获取spring容器对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");

5.2.获取对象,测试运行

Student student = (Student)applicationContext.getBean("student");

package com.apesource.test;import com.apesource.dao.DaoImp;
import com.apesource.pojo.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test01 {public static void main(String[] args) {//1.加载spring核心配置文件,获取spring容器对象ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");//2.获取对象(getBean(" beans.xml 文件注入类时的 id 名"))Student student = (Student) applicationContext.getBean("student");System.out.println(student);DaoImp dao = (DaoImp) applicationContext.getBean("daoImp");dao.save();}
}

结果如下,运行成功

二、小结

模拟三层--控制层、业务层和数据访问层 (yuque.com),与它的 perproties 对比理解

beans.properties

beans.xml

key=values

id=class

BeansFactory

ApplicationContext

getBean(key)

getBean(id)

关键字:

BeanFactory(父)

ApplicationContext(子《孙子》)

ClassPathXmlApplicationContext==>通过加载主配置文件的相对路径,获取spring容器

FileSystemXmlApplicationContext==>通过加载主配置文件的绝对路径,获取spring容器

AnnotationConfigApplicationContext==>加载配置类,获取spring容器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【区块链+乡村振兴】阳光农安农产品质量安全监管与服务平台 | FISCO BCOS应用案例
  • Fal.ai Flux 1-Pro/Viva.ai/哩布哩布AI:AI绘图部分免费工具+原图提示词Prompt
  • 慢SQL优化
  • Vue3+Ts封装类似el-drawer的抽屉组件
  • 【C语言篇】编译和链接以及预处理介绍(下篇)
  • springboot controller参数中如何传递字符串数组
  • MySQL 常用 SQL 语句大全
  • LVS的简单配置及对Mysql主从复制的补充
  • 食品零食小吃商城管理系统-计算机毕设Java|springboot实战项目
  • 求职Leetcode算法题(7)
  • c语言基础知识学习
  • 井字棋游戏(HTML+CSS+JavaScript)
  • Java的反射原理
  • 天途推出无人机软硬件定制服务
  • Velero 快速上手:使用 Velero 实现 Kubernetes 集群备份与迁移
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Angular 2 DI - IoC DI - 1
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JAVA SE 6 GC调优笔记
  • Java反射-动态类加载和重新加载
  • mysql_config not found
  • Promise面试题2实现异步串行执行
  • spring boot 整合mybatis 无法输出sql的问题
  • tensorflow学习笔记3——MNIST应用篇
  • 关于字符编码你应该知道的事情
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 如何进阶一名有竞争力的程序员?
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 什么是Javascript函数节流?
  • 用Canvas画一棵二叉树
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 责任链模式的两种实现
  • 找一份好的前端工作,起点很重要
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 06-01 点餐小程序前台界面搭建
  • 数据可视化之下发图实践
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)共用体union的用法举例
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (六)Flink 窗口计算
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (学习日记)2024.01.19
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)fock函数详解
  • .cn根服务器被攻击之后
  • .net CHARTING图表控件下载地址
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 反编译_.net反编译的相关问题
  • .NetCore实践篇:分布式监控Zipkin持久化之殇