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

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. canvas一周一练 -- canvas基础学习

    从上个星期开始,耳朵就一直在生病,里面长了个疙瘩,肿的一碰就疼,不能吃饭不能嗨 (┳_┳)……在此提醒各位小伙伴,最近天气炎热,一定要注意防暑上火,病来如山倒呀~ 接下来我正在喝着5块一颗的药学习ca ...

  2. 【3D计算机图形学】变换矩阵、欧拉角、四元数

    [3D计算机图形学]变换矩阵.欧拉角.四元数 旋转矩阵.欧拉角.四元数主要用于:向量的旋转.坐标系之间的转换.角位移计算.方位的平滑插值计算.   一.变换矩阵: 首先要区分旋转矩阵和变换矩阵: 旋转 ...

  3. JS操作字符串常用的方法

    JS操作String对象的方法 charAt(index):返回指定索引处的字符串charCodeAt(index):返回指定索引处的字符的Unicode的值concat(str1,str2,...) ...

  4. PHP超全局变量$_SERVER

    $_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建.不能保证每个服务器都 ...

  5. 【设计模式】Bridge模式(桥接模式)

    最近的一次面试中,被问到桥接模式,以前呢并没有很仔细的研究过这个设计模式,借此机会剖析一下. 先给出自己对这个模式理解后的源码: interface A{ void methodA(); } inte ...

  6. 大数据算法->推荐系统常用算法之基于内容的推荐系统算法

    港真,自己一直非常希望做算法工程师,所以自己现在开始对现在常用的大数据算法进行不断地学习,今天了解到的算法,就是我们生活中无处不在的推荐系统算法. 其实,向别人推荐商品是一个很常见的现象,比如我用了一 ...

  7. 用Eclipse生成JPA元模型

    在JPA criteria 动态查询中,有个"元模型"的东西,它是根据"实体"类动态生成的一个类,它的主要作用是实现JPA criteria查询的"类 ...

  8. 从.net到java,记录下这三个月的工作

    从事.NET开发已经4个年头,经过十余个项目的学习与沉淀,终于有了一套自己熟悉并且相对完善的技术体系,面对未知,不再惧怕.期间完成并广泛用于公司项目的作品包括: abp的二次开发框架BodeAbp 基 ...

  9. Spring学习笔记之AOP配置篇(一)

    [TOC] 1. 创建并声明一个切面 首先,创建一个类,添加@Component注解使其添加到IoC容器 然后,添加@Aspect注解,使其成为一个切面 最后,在配置文件里面,使用<aop:as ...

  10. HDU字符串基础题(1020,1039,1062,1088,1161,1200,2017)

    并不是很精简,随便改改A过了就没有再简化了. 1020. Problem Description Given a string containing only 'A' - 'Z', we could ...