在生活中我们会有很多依赖关系,我要写一个笔记,就要有本子,笔,两种物品,还有当事人我,一共三个对象。

1、本子:可以再上面写字,这是他是属性,可被书画;

2、笔:可以在很多东西上写写画画;这也是他的属性:可以写字;

3、我:要用本子和笔完成一件事情,就是在本子上写:乐天是个sb;

我要完成这件事就要依赖于本子,笔,就存在了依赖关系, 但是你想想你要做另一件事情是不是还要依赖其他的事物呢?依赖的东西是不是要更多呢

再比如说,你要洗澡,要有毛巾,热水器,沐浴露,洗发膏,浴缸。。。好多

我们把这些依赖关系写进一个spring.xml文件里,我们就可以少用很多new了,要不然你每次用他们就要创建声明对象,然后才能使用

下面我要讲Spring环境搭建了:

一、配置文件:

1、asm-2.2.3.jar

2、asm-commons-2.2.3.jar

3、asm-util-2.2.3.jar

4、aspectjrt.jar

5、aspectjweaver.jar

6、cglib-nodep-2.1_3.jar

7、commons-logging-1.0.4.jar

8、spring.jar

还有一个核心文件:spring.xml

核心文件代码如下

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<bean id="m" class ="com.old.Manager"/>
<bean id="t" class ="com.old.Computer"/>
<bean id="f" class ="com.old.FrontStarff"/>
<bean id="fresh" class="com.old.FreshStarff">
  <property name="manager" ref="m"/>
  <property name="tool" ref="t"/>
  <property name="fs" ref="f"/>

</bean>
</beans>

配置文件的第一行是不能有空行的!!!就是因为这个原因我找了好久的错误!!!!

下面的是实体类:

package com.old;

/**

*电脑这个工具具有电脑的属性

**/
public class Computer implements tool {
public String getName(){
return "computer";
}
}

某个人要使用电脑,实现使用电脑这个方法,

package com.old;

public class FreshStarff {
private Manager manager;
private tool tool;
private FrontStarff fs;

public Manager getManager() {
return manager;
}

public void setManager(Manager manager) {
this.manager = manager;
}

public tool getTool() {
return tool;
}

public void setTool(tool tool) {
this.tool = tool;
}

public FrontStarff getFs() {
return fs;
}

public void setFs(FrontStarff fs) {
this.fs = fs;
}

public void usetool(){
if ("ok".equals(manager.allow())&&"ok".equals(fs.register())){
System.out.println("yun許使用"+tool.getName());
}
}
}

前台同意使用电脑

package com.old;

public class FrontStarff {
public String register(){
return "ok";
}
}

经理同意使用电脑

package com.old;

public class Manager {
public String allow(){
return "ok";
}
}

测试类,调用封装在Spring里的内容,来实现功能,并打印到控制台

package com.old;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
public static void main(String[] args) {
//加載Spring的配置文件
ApplicationContext ac =new ClassPathXmlApplicationContext("spring.xml");
FreshStarff fh= (FreshStarff)ac.getBean("fresh");
fh.usetool();
Manager mg= (Manager)ac.getBean("m");
System.out.println(mg.allow());

tool to=(tool)ac.getBean("t");
System.out.println(to.getName());
}
}

我得天Spring内层太难了,等我研习一下继续给大家解读吧

Spring框架解析的更多相关文章

  1. Spring5源码解析-Spring框架中的单例和原型bean

    Spring5源码解析-Spring框架中的单例和原型bean 最近一直有问我单例和原型bean的一些原理性问题,这里就开一篇来说说的 通过Spring中的依赖注入极大方便了我们的开发.在xml通过& ...

  2. Spring Framework框架解析(1)- 从图书馆示例来看xml文件的加载过程

    引言 这个系列是我阅读Spring源码后的一个总结,会从Spring Framework框架的整体结构进行分析,不会先入为主的讲解IOC或者AOP的原理,如果读者有使用Spring的经验再好不过.鉴于 ...

  3. Spring框架IOC容器和AOP解析 非常 有用

    Spring框架IOC容器和AOP解析   主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...

  4. Spring框架之beans源码完全解析

    导读:Spring可以说是Java企业开发里最重要的技术.而Spring两大核心IOC(Inversion of Control控制反转)和AOP(Aspect Oriented Programmin ...

  5. Spring框架之AOP源码完全解析

    Spring框架之AOP源码完全解析 Spring可以说是Java企业开发里最重要的技术.Spring两大核心IOC(Inversion of Control控制反转)和AOP(Aspect Orie ...

  6. Spring框架之jms源码完全解析

    Spring框架之jms源码完全解析 我们在前两篇文章中介绍了Spring两大核心IOC(Inversion of Control控制反转)和AOP(Aspect Oriented Programmi ...

  7. Spring框架之spring-web http源码完全解析

    Spring框架之spring-web http源码完全解析 Spring-web是Spring webMVC的基础,由http.remoting.web三部分组成. http:封装了http协议中的 ...

  8. Spring框架之spring-web web源码完全解析

    Spring框架之spring-web web源码完全解析 spring-web是Spring webMVC的基础,由http.remoting.web三部分组成,核心为web模块.http模块封装了 ...

  9. Spring框架之spring-webmvc源码完全解析

    Spring框架之spring-webmvc源码完全解析 Spring框架提供了构建Web应用程序的全功能MVC模块.Spring MVC分离了控制器.模型对象.分派器以及处理程序对象的角色,支持多种 ...

随机推荐

  1. Vulkan Tutorial 27 combined image sampler

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 我们在教程的uniform 缓冲区中首次了解了描述符.在本 ...

  2. 在CI中实现持续Web安全扫描

    一. 当前Web应用安全现状 随着中国互联网金融的爆发和繁荣,Web应用在其中扮演的地位也越来越重要,比如Web支付系统.Web P2P系统.Web货币系统等.对于这些金融系统来讲,安全的重要性是不言 ...

  3. STL—vector空间的动态增长

    vector空间的动态增长     当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间.vect ...

  4. docker~linux下的部署和基本命令

    回到目录 docker是最近比较流行的容器工具,它可以帮助我们快速部署应用,尤其是在“微服务”环境下,成百个服务要去启动,停止,部署一次太麻烦,而如果把它部署到docker里,下一次应用就方便多了,如 ...

  5. Android开发相关操作

    命令行启动DDMS工具,前提是有这个工具 ~/rustsoftware/adt-bundle-linux-x86_64-20140702/sdk/tools$ ./ddms 查看机器内存情况: adb ...

  6. (转)Linux下增加交换分区的大小

    场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...

  7. (转)Java多线程之Lock的使用 (待整理)

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...

  8. 实例化bean

    从bean.xml中<bean>标签内容可以看出bean其实是一个管理对象的东西,我们只需要修改xml配置文件,就可以改变对象之间的依赖关系,不需要去修改任何源代码.我觉得学习好sprin ...

  9. Eclipse 改变字体大小,设置背景色

    Eclipse背景颜色修改: 操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些.设置方法如下: 1.打开win ...

  10. [补档][NOI 2008]假面舞会

    [NOI 2008]假面舞会 题目 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一个自己喜欢的面具. 每个面具都有一 ...