Spring的核心机制依赖注入,Junit测试与Java基础Getter和Setter两种方法意义——2017.07.26...
今天对Spring的基础理解又加深了一丢丢。
1 首先Spring的基础配置文件中,主要由以下几个配置文件,
1 <beans xmlns:xsi="http://w3.org/2001/XMLSchema-instance" 2 xmlns="http://www.springframework.org/schema/beans" 3 xsi:schemaLocation="http://www.springframework.org/schema/beans 4 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd>
beans文件的根节点
xmlns:xsi ——是指xml文件遵守xml规范 xml schema instance
xmlns的意思是 XML namespace
xsi:schemationLocation:是指具体用到的schema资源.
2 Spring中的核心机制是依赖注入,那么谈依赖注入,必首先需要知道什么是依赖注入,A调用B,表明的是A与B之间有依赖关系,注入是表示在使用时注入B的实列。
那么为什么会用这些呢?
我们首先需要回忆下,对于对象A与对象B,A要调用对象B,有那几种实现方式、
(1) 通过 new 构造器
(2) 通过工厂模式
(3) 通过Spring方式
new方式最简单粗暴,如果调用对象很多,代码直接耦合度会非常高。第二个就会稍微简单一些,简单理解就是工厂把B搞好,我们找工厂就行。第三种方式就是在工厂的模式上进一步简单,把B造好,B主动送上来。
第三种方式中,通常通过IOC容器来控制B送上门来。这就回到我们的主题,如何依赖注入,依赖注入通常有两种方式。
设值注入:IOC容器通过成员变量的setter方法来注入被依赖对象。那么问题来了,Spring通过什么知道实例之间的依赖关系呢。答案是XML配置文件,即是XML Schema来定义配置文件约束
<bean id="chinese" class="org.crazy.app.service.impl.chinese"><property name ="axe" ref="stoneAxe"/> </bean>
id是该Bean的唯一标识,程序通过id属性来访问该Bean实列
class:指定该Bean的实现类,注意此处不能用接口,必须是实现类。
其中如果<property name="" ref="">
Spring框架中只要出现<property.../>子元素,会立马执行Setter方法。
简单的来概况一下设值注入就是通过setter方法位目标注入依赖关系。
构造注入:在构造实例时已经完成了依赖关系的初始化化,这种利用构造器来设值依赖关系的方式,称为构造注入。通俗来说,就是驱动Spring在底层以反射方式执行带指定参数的构造器,当执行带参数的构造器时,就可以利用构造器参数对成员变量执行初始化。
此时出现问题,Spring默认是无参数的构造器来创建对象。
2 Getter和Setter方法的好处
首先Getter和Setter两个方法是什么?这两个方法其实是读与写两个操作,getter是外部读取操作,函数必须有返回值,且函数名是内部变量名,对成员变量进行取值操作。setter是内部写入操作,对成员变量进行赋值,相当于写入操作。
二者的好处:1 我的感触是提供了代码的封装,外部不会轻易改变内部代码的值。(别人概括的经典话是:内部储存与外部表现不同) 2 在对外部接口不变的情况下,修改内部储存方式和逻辑 3 可以有不同的访问级别
3Junit 测试
Junit测试是什么?怎么用?
Junit是一个Java语言单元测试框架,有点类似于白盒测试,此时程序员清楚知道程序的内部逻辑结构,程序员知道完成什么样的逻辑功能与完成后会怎么样?
怎么用?需要导入Junit包,结合项目进一步使用。(明天继续补充)
转载于:https://www.cnblogs.com/linjingjia/p/7242399.html
Spring的核心机制依赖注入,Junit测试与Java基础Getter和Setter两种方法意义——2017.07.26...相关推荐
- Spring的核心机制依赖注入简介
Spring能有效地组织J2EE应用各层的对象.不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的管理下有机地协调.运行.Spring将各层的 ...
- Spring 的控制反转/依赖注入
第一章 Spring 的控制反转/依赖注入 回顾 增删改查. 课前测: 本章内容 spring:春天 IOC:将创建对象的权力交给 spring 核心容器去控制.工厂模式 BeanFactory: 懒 ...
- 零配置 之 Spring 注解实现Bean依赖注入
转载自 [第十二章]零配置 之 12.2 注解实现Bean依赖注入 --跟我学spring3 12.2 注解实现Bean依赖注入 12.2.1 概述 注解实现Bean配置主要用来进行如依赖注入. ...
- 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)
相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...
- Spring IOC容器的依赖注入流程(收集和注册、分析和组装)
Spring IOC容器的依赖注入流程 Spring IOC容器的依赖注入工作可以分为两个阶段: 阶段一:收集和注册 第一个阶段可以认为是构建和收集bean定义的阶段,在这个阶段中,我们可以通过XML ...
- 回客科技 面试的 实现ioc 容器用到的技术,简述BeanFactory的实现原理,大搜车面试的 spring 怎么实现的依赖注入(DI)...
前言:这几天的面试,感觉自己对spring 的整个掌握还是很薄弱.所以需要继续加强. 这里说明一下spring的这几个面试题,但是实际的感觉还是不对的,这种问题我认为需要真正读了spring的源码后说 ...
- Spring(二)--------Spring配置、DI依赖注入、Bean自动装配
Spring(二)--------Spring配置.DI依赖注入.Bean自动装配 5.Spring配置 5.1 别名 设置别名:第一种方式alias <!--其中name为ID的对应值--&g ...
- 关于mysql注入说法正确的是_1. 在 Spring中,下列关于 依赖注入 的 说法 , 正确的是( ) 。_学小易找答案...
[简答题]1基本流程练习 2时间轴嵌套 3简单应用 [简答题]请解释什么是MVC? [多选题]在 Hibernate 中,下 列 说法正确的有 [多选题]1. 关于 Spring,下列说法不正确的是( ...
- Spring Bean 装配和依赖注入
Spring IOC 容器的依赖注入工作可以分为两个阶段.第一个阶段可以认为是构建和收集 Bean 定义的阶段,在这个阶段中,我们可以通过 xml 或者 Java 代码的方式定义一些 Bean,然后通 ...
最新文章
- linux脚本中怎么直接替换,linux-如何快速替换IP
- 基因在细胞系当中的表达数据库,CCLE使用简述
- python的for循环累加_在python中将6 for循环累计和矢量化
- mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
- Redis:22---客户端API:client、monitor)
- android xml 多行注释,C#中的XML多行注释 - 我做错了什么?
- 【报告分享】2020中国时尚跨境电商发展报告.pdf(附下载链接)
- javaScript this指向问题
- Luogu3810 三维偏序(陌上花开)
- 解决mysql客户端中文显示乱码
- 【转】linux下tcp测试工具
- EEGLAB及其插件下载安装
- 面试经历记录——东方海外OOCL上海软件开发中心实习生
- Learning latent geometric consistency for 6D object pose estimation in heavily cluttered scenes
- html图片右上角删除按钮,图片右上角删除
- [2018-03-06] 基于Django的轻量级CMS Mezzanine搭建笔记
- python智力问答游戏代码,python实现智力问答测试小程序
- 腾讯SkillNet|NLU任务全能网络,对Pathways架构的初步尝试
- 一款开源 OA 办公自动化系统
- 炒股的智慧-三则小故事
热门文章
- pureMVC简单示例及其原理讲解四(Controller层)
- Android Handler的使用方法
- PyQt安装和环境配置
- Jenkins常用插件
- 挑战程序设计竞赛 (秋叶拓哉 / 岩田阳一 / 北川宜稔 著)
- Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
- 【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
- ArcGIS AO开发高亮显示某些要素
- 安卓开发 新浪微博share接口实现发带本地图片的微博
- 2018-2019-1 《信息安全系统设计基础》教学进程