Spring LOC和DI
1、Spring jar包下载
https://repo.spring.io/libs-release-local/org/springframework/spring/
创建lib目录,导入jar包,并配置为项目的Library
在这里插入图片描述

2、创建com.gx.model.User类,用于演示IOC和DI
package com.gx.model;import java.io.Serializable;
public class User implements Serializable {
private String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return “User{” +
“name='” + name + ‘’’ +
“, age=” + age +
‘}’;
}
}
3、配置applicationContext.xml
src目录下新建applicationContext.xml文件,先导入jar包,后创建applicationContext.xml,否则无代码提示applicationContext.xml是Spring的核心配置文件

<?xml version="1.0" encoding="UTF-8"?>

4、在Main类的main方法中编写测试代码:
Spring 容器会加载配置文件,在加载的同时,Spring 容器会通过无参构造函数对 Bean 进行实例化
2.2、Spring5 + Junit4 简单测试
2.2.1、案例
1、添加Jar包:
hamcrest-all-1.3.jar :是一个为了测试为目的,且能组合成灵活表达式的匹配器类库,是Junit4的所
依赖的Jar包
junit-4.12.jar :Junit4的Jar包
2、编写一个测试类 com.gx.test.Demo:

package com.gx;
import com.gx.model.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
private static ApplicationContext context;
public static void main(String[] args) {
// write your code here
context = new ClassPathXmlApplicationContext(“applicationContext.xml”);
User user1 = (User) context.getBean(“user01”);
User user2 = (User) context.getBean(“user”);
User user3 = (User) context.getBean(User.class);
System.out.println(user1);
System.out.println(user2);
System.out.println(user3);
}
}
package com.gx.test;
import com.gx.model.User;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo {注解
说明
@Test
测试方法,在这里可以测试期望异常和超时时间
@Before
初始化方法,会在@Test执行前执行
@After
释放资源,会在@Test执行后执行
@BeforeClass
所有测试执行前执行,只执行一次,且必须为 static void
@AfterClass
所有测试执行后执行,只执行一次,且必须为static void
@Ignore
忽略的测试方法
3、运行测试“testDemo”,①在testDemo方法内右键“Run testDemo()”;或者②点击testDemo方法前的绿色三角箭头“Run Test”
2.2.2、Junit4常用注解
2.3、Spring Bean 的配置方式
2.3.1、传统XML配置方式 SpringXML配置bean元素相关属性
作为 Spring 核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而
交由 Spring 容器完成,在需要时注入应用程序中,从而对组件之间依赖关系进行了解耦。这一切都离不
开 Spring 配置文件中使用的 元素。
Spring 容器可以被看作一个大工厂,而 Spring 容器中的 Bean 就相当于该工厂的产品。如果希望
这个大工厂能够生产和管理 Bean,这时则需要告诉容器需要哪些 Bean,以及需要以何种方式将这些
Bean 装配到一起
private ApplicationContext context=null;
@Before
public void getApplicationContext(){
context = new ClassPathXmlApplicationContext(“applicationContext.xml”);
}
@Test
public void testDemo(){
User user1 = (User) context.getBean(“user01”);
System.out.println(user1);
}

Spring LOC和DI相关推荐

  1. Spring loC的介绍

    spring loC的介绍: (文中有部分内容转于这篇文章https://blog.csdn.net/qq_40587575/article/details/79901550) loC--Invers ...

  2. spring IOC和DI

    spring IOC and DI 1.IOC和DI的区别: IOC:对象的管理权由spring容器掌握(管理权限包括:对象的创建时间点.创建方式以及对象属性的管理): DI:spring操作对象属性 ...

  3. Spring依赖注入(DI)

    2019独角兽企业重金招聘Python工程师标准>>> 1.面向接口编程 什么是面向接口编程呢?我个人认为,就是在我们的系统分析和架构中,首先,分清层次和依赖关系,每个层次不直接向上 ...

  4. 手写实现Spring(IOC、DI),SpringMVC基础功能

    手写实现Spring(IOC.DI),SpringMVC功能 spring和springMVC的用法相信大家都不陌生,我简单讲下我实现的思路 spring阶段 事项 配置 配置web.xml: ini ...

  5. 浅谈Spring IOC和DI及Spring工厂类

    浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...

  6. Spring(二)--------Spring配置、DI依赖注入、Bean自动装配

    Spring(二)--------Spring配置.DI依赖注入.Bean自动装配 5.Spring配置 5.1 别名 设置别名:第一种方式alias <!--其中name为ID的对应值--&g ...

  7. Spring IOC与DI、反射的理解 含小案例说明

    阅览了很多篇博文,对于Spring IOC和DI看到很多人介绍的感觉都很含糊,读完之后还是觉得混淆的不行,也有的人认为DI是IOC的另一种说法-emm,可能个人理解不同吧,我的观点并不然.但这种东西, ...

  8. spring IOC和DI区别

    ① IOC:控制反转,把对象创建交给spring进行配置 ② DI:依赖注入,向类里面的属性中设置值 ③ 关系:依赖注入不能单独存在,需要在ioc的基础之上完成操作

  9. Spring IoC和DI XML方式 注解方式 依赖注入 AOP面向切面

    初识Spring框架 时代变迁 原始时代我们用一个jsp搞定一切,但如此开发大型项目时我们遇到了问题,前端美化的代码和后端的代码交织,代码中又有html.js.css样式,又有业务逻辑和数据库访问代码 ...

最新文章

  1. NSArray 简单细说
  2. TestNG方法測试及注意要点 代码及配置具体解释(解决testng方法不运行问题)
  3. 【深度学习】PyTorch深度学习技术生态
  4. 【MySQL】redo log --- 刷入磁盘过程
  5. WPF实现实现圆形菜单
  6. 自动化流程开源框架BotSharp
  7. 给定一个整数数组,判断是否存在重复元素。
  8. 红外非均匀矫正matlab实现,一种红外图像非均匀性校正方法与流程
  9. hivesql 列转行,并用逗号分隔
  10. 易语言 火眼 哈勃 防分析源码
  11. 通过PS把普通数码照片制作成素描照片
  12. LINUX漏洞复现篇之ShellShock漏洞
  13. 【概率图与随机过程】25 从有向到无向:谈谈条件随机场
  14. 零基础学C语言 第3版 pdf
  15. 【案例】用 turtle 绘制一个月饼
  16. OJ1088: 手机短号 (多实例)(C语言)
  17. 王权游戏中“帽子王”成就的获取
  18. (多线程优化)爬取京东笔记本电脑销量榜data-sku(商品id),并存入云服务器中的mysql库(爬取时间较上一版提升十多倍)
  19. 编程题 进制转换(Java实现)
  20. 动态因子模型的理论和应用研究读书笔记(朱满洲)

热门文章

  1. 小米商城左侧菜单布局和效果实现(分析+代码)
  2. PLSQL9真正注册机
  3. SpringMVC知识点总结三
  4. windows快速关机
  5. 解读各种PS图层混合模式的工作原理
  6. yum命令及配置yun源
  7. 一篇让你深度思考的文章|大数据与数据挖掘的相对绝对关系 大数据
  8. mysql8.0.11 安装失败_MySQL-mysql 8.0.11安装教程
  9. 如何搭建网络电视直播系统 (详细介绍硬件+软件系统)
  10. 2种解法:分数转化为小数形式