今天对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...相关推荐

  1. Spring的核心机制依赖注入简介

    Spring能有效地组织J2EE应用各层的对象.不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的管理下有机地协调.运行.Spring将各层的 ...

  2. Spring 的控制反转/依赖注入

    第一章 Spring 的控制反转/依赖注入 回顾 增删改查. 课前测: 本章内容 spring:春天 IOC:将创建对象的权力交给 spring 核心容器去控制.工厂模式 BeanFactory: 懒 ...

  3. 零配置 之 Spring 注解实现Bean依赖注入

    转载自  [第十二章]零配置 之 12.2 注解实现Bean依赖注入 --跟我学spring3 12.2  注解实现Bean依赖注入 12.2.1  概述 注解实现Bean配置主要用来进行如依赖注入. ...

  4. 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...

  5. Spring IOC容器的依赖注入流程(收集和注册、分析和组装)

    Spring IOC容器的依赖注入流程 Spring IOC容器的依赖注入工作可以分为两个阶段: 阶段一:收集和注册 第一个阶段可以认为是构建和收集bean定义的阶段,在这个阶段中,我们可以通过XML ...

  6. 回客科技 面试的 实现ioc 容器用到的技术,简述BeanFactory的实现原理,大搜车面试的 spring 怎么实现的依赖注入(DI)...

    前言:这几天的面试,感觉自己对spring 的整个掌握还是很薄弱.所以需要继续加强. 这里说明一下spring的这几个面试题,但是实际的感觉还是不对的,这种问题我认为需要真正读了spring的源码后说 ...

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

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

  8. 关于mysql注入说法正确的是_1. 在 Spring中,下列关于 依赖注入 的 说法 , 正确的是( ) 。_学小易找答案...

    [简答题]1基本流程练习 2时间轴嵌套 3简单应用 [简答题]请解释什么是MVC? [多选题]在 Hibernate 中,下 列 说法正确的有 [多选题]1. 关于 Spring,下列说法不正确的是( ...

  9. Spring Bean 装配和依赖注入

    Spring IOC 容器的依赖注入工作可以分为两个阶段.第一个阶段可以认为是构建和收集 Bean 定义的阶段,在这个阶段中,我们可以通过 xml 或者 Java 代码的方式定义一些 Bean,然后通 ...

最新文章

  1. linux脚本中怎么直接替换,linux-如何快速替换IP
  2. 基因在细胞系当中的表达数据库,CCLE使用简述
  3. python的for循环累加_在python中将6 for循环累计和矢量化
  4. mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
  5. Redis:22---客户端API:client、monitor)
  6. android xml 多行注释,C#中的XML多行注释 - 我做错了什么?
  7. 【报告分享】2020中国时尚跨境电商发展报告.pdf(附下载链接)
  8. javaScript this指向问题
  9. Luogu3810 三维偏序(陌上花开)
  10. 解决mysql客户端中文显示乱码
  11. 【转】linux下tcp测试工具
  12. EEGLAB及其插件下载安装
  13. 面试经历记录——东方海外OOCL上海软件开发中心实习生
  14. Learning latent geometric consistency for 6D object pose estimation in heavily cluttered scenes
  15. html图片右上角删除按钮,图片右上角删除
  16. [2018-03-06] 基于Django的轻量级CMS Mezzanine搭建笔记
  17. python智力问答游戏代码,python实现智力问答测试小程序
  18. 腾讯SkillNet|NLU任务全能网络,对Pathways架构的初步尝试
  19. 一款开源 OA 办公自动化系统
  20. 炒股的智慧-三则小故事

热门文章

  1. pureMVC简单示例及其原理讲解四(Controller层)
  2. Android Handler的使用方法
  3. PyQt安装和环境配置
  4. Jenkins常用插件
  5. 挑战程序设计竞赛 (秋叶拓哉 / 岩田阳一 / 北川宜稔 著)
  6. Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
  7. 【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
  8. ArcGIS AO开发高亮显示某些要素
  9. 安卓开发 新浪微博share接口实现发带本地图片的微博
  10. 2018-2019-1 《信息安全系统设计基础》教学进程