Spring 的入门案例:(IOC)

   IOC 的底层实现原理(结构图2.01)

    

                        图:2.01

  

  IOC:Inversion of Control 控制反转,指的是对象的创建权反转(交给)给Spring,

      作用是实现了程序的解耦合

  步骤一:下载 Spring 的开发包:

    官网:http://spring.io/

    下载地址: http://repo.springsource.org/libs-release-local/org/springframework/spring

  创建 web 项目,引入 Spring 的开发包:

        导入基本的jar包(4+2)

      

           图:2.02

   引入相关配置文件:

      log4j.properties  //日志文件

      applicationContext.xml

    引入约束:

      spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configur ation.html 

    

       <beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="

      http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans.xsd">

      </beans>

    

    编写相关的类(开发工具:eclispe):       

      //新建 Dao_Intf 接口 

     public interface Dao_Intf {

        public void sayHello();

       }

      

    //实现Dao_Intf接口并实现接口的方法

     public class Dao_Impl implements Dao_Intf {

        @Override

        public void sayHello() {

        System.out.println("Hello Spring...");

      }

    }

        

  完成配置:

    // 新建 xml文件  名字一般是给 applicationContext.xml  看自己的需求吧

      <!-- Spring的入门案例================ -->

     <bean id="Dao_Impl" class="com.xiao.spring_bean.Dao_Impl"></bean>

    <!-- id是唯一的,name可重名,需要注意 -->

 

  完成上面的步骤,编写测试程序:

      需要导入 junit-4.10.jar ,main方法也可以

     // Spring 的方式:

    @Test

   public void demo1() {

    // 创建 Spring 的工厂类:

    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

    // 通过工厂解析 XML 获取 Bean 的实例.

    Dao_Intf dao_Intf = (Dao_Intf ) applicationContext.getBean("Dao_Impl");//需要对应id的名称,不然会报异常

    dao_Intf.sayHello();

   }

  

  IOC :控制反转,将对象的创建权交给了 Spring.

  DI :Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去.

  ............................................................................................................................................................................................................

                                                  欢迎留言、感谢观看!

Spring bean配置 入门的更多相关文章

  1. Spring学习(九)-----Spring bean配置继承

    在 Spring,继承是用为支持bean设置一个 bean 来分享共同的值,属性或配置. 一个子 bean 或继承的bean可以继承其父 bean 的配置,属性和一些属性.另外,子 Bean 允许覆盖 ...

  2. Spring bean配置继承

    在 Spring,继承是用为支持bean设置一个 bean 来分享共同的值,属性或配置. 一个子 bean 或继承的bean可以继承其父 bean 的配置,属性和一些属性.另外,子 Bean 允许覆盖 ...

  3. spring Bean配置的三种形式

    Spring Bean配置有以下三种形式: 传统的xml配置 Spring 2.5 以后新增注解配置 Spring3.0以后新增JavaConfig 1. 传统的xml配置 <?xml vers ...

  4. [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Spring Bean配置2

    Spring表达式语言:SpEL •Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. •语法类似于 EL:SpEL 使用 #{…} 作为定界符,所有在大框 ...

  8. Spring Bean配置

    Spring 是什么 •Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. •Spring 是一个 IOC(DI) 和 ...

  9. Spring Bean配置默认为单实例 pring Bean生命周期

    Bean默认的是单例的. 如果不想单例需要如下配置:<bean id="user" class="..." scope="singleton&q ...

随机推荐

  1. 吴裕雄--天生自然python编程:turtle模块绘图(4)

    import turtle bob = turtle.Turtle() for i in range(1,5): bob.fd(100) bob.lt(90) turtle.mainloop() im ...

  2. 吴裕雄--天生自然 人工智能机器学习实战代码:线性判断分析LINEARDISCRIMINANTANALYSIS

    import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot ...

  3. Ubuntu14-04安装redis和php5-redis扩展

    PS:在系统安装完后最好执行下列命令更新下软件 实际上只要软件源没什么问题的话,安装什么软件都是OK的. 来开始安装Redis吧~~ 一:如果你的其他都OK的话,可以执行下列命令直接安装 sudo a ...

  4. a链接刷新页面与js刷新页面总结

    1.a链接的使用操作: <a href="javascript:history.go(-1);">返回上一页</a> <a href="#t ...

  5. shell的循环嵌套语法

    测试shell的循环嵌套语法 [root@localhost test]# vi Xunhuanqiantao.sh #!/bin/bash #程序功能描述: # 测试循环嵌套 #作者:孤舟点点 #版 ...

  6. Google在百慕大避税几十亿美金,为什么巨头和富豪都会选百慕大避税?

    为什么"越有钱越有钱"?为什么富豪只要不自己"作",就能让自己的财富疯狂增加?除了经营意识之外,关键他们还可以利用自己的资源.实力等去做很多看似让人不齿,但其实 ...

  7. 产品需求说明书PRD模版

    <软件自动化测试开发>出版了 XXX产品需求说明书 [版本号:V+数字]                 编  制: 日  期: 评  审: 日  期: 批  准: 日  期:       ...

  8. Mac 常见命令行

    1. unrar解压rar文件 1.1 安装命令:brew install unrar 1.2 解压文件:unrar x test.rar 2. 创建文件夹:mkdir 文件夹名 3. 删除文件夹: ...

  9. Python神经网络编程笔记

    神经元 想一想便知道,当一个人捏你一下以至于你会痛得叫起来的力度便是神经元的阈值,而我们构建的时候也是把这种现象抽象成一个函数,叫作激活函数. 而这里便是我们使用sigmoid函数的原因,它是一个很简 ...

  10. 从头认识js-基本概念(关键字,保留字,数据类型)

    语法 ECMAScript的语法大量借鉴了C及其他类C语言(如Java和Perl)的语法.因此,熟悉这些语言的开发人员在接受ECMSAScript更加宽松的语法时,一定会有一种轻松自在的感觉. 区分大 ...