【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

Spring两大依赖注入的注入时间

原创 2016年06月01日 15:34:02
Spring两大依赖注入的注入时间
如果注入类有构造方法,那么Spring赋值注入是在类实例化之后完成,即先调用构造方法完成类实例化,再进行值注入。下面具体介绍:

applicationcontext.xml里:
    <bean id="ConnectionUrl" class="demo.dao.Dao">
      <property name="url" >
         <value>jdbc:mysql://localhost:3306/test</value>
      </property>
    </bean>


Dao类:
    String url = null; 
    String user = "root";
    String pwd = "123456";

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url + "?useUnicode=true&characterEncoding=UTF-8";
    }

 public Dao() { 
        // 连接数据库
        System.out.println("spring4:" + getUrl());
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(url, user, pwd);
            stat = con.createStatement();
            System.out.println("连接数据库成功!");
        } catch (Exception e) {
            System.out.println("连接数据库失败!");
            con = null;
        }
    }

测试类:
       ApplicationContext ctx = new FileSystemXmlApplicationContext(getClass().getResource("/").getFile().toString().substring(1).replace(
                        "classes/", "applicationContext.xml"));
        //实例化Dao类
        Dao dao = (Dao) ctx.getBean("ConnectionUrl");  
        System.out.println(dao.getUrl());

结果:
    先出现System.out.println("spring4:" + getUrl());显示为spring4:null,
    再出现System.out.println(dao.getUrl());显示jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

表明先实例化类,再Spring赋值注入url,于是dao.getUrl()才获取到注入值。
 
结论:合理利用Spring的两大依赖注入方式可以给程序带来很大帮助:
        
   在一个类中,如果想直接实例化该类就使用注入值时,即用构造注入;如果想实例化时,先在构造方法中使用该类未注入的原始值,再使用注入值时,就可以选用赋值注入。
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

java面试题——三大框架的核心:Java反射机制和Spring控制反转和依赖注入

分享一下对IOC(控制反转)和DI(依赖注入)的精彩讲解: Java反射机制的作用: 1)在运行时判断任意一个对象所属的类。 2)在运行时判断任意一个类所具有的成员变量和方法。 3)在...

spring三大核心学习(二)--依赖注入

         spring第二个特性是依赖注入。          学习依赖注入,首先应该明白两个问题:1,谁依赖谁;2,谁注入,注入什么?          首先还是看代码:          还是这个bean:   package testSpring.business.bean; import org.spr

Spring 核心技术概览(一)

Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架,其从持久层、业务层到表现层都拥有相应的支持,几乎为企业应用提供了所需的一切。本文首先概述了Spring容器的IoC控制反转和DI...

Spring核心技术学习总结

Spring核心技术学习总结 http://penghuaiyi.iteye.com/blog/182616</h3

【SSH三大框架】Spring基础第二篇:Spring依赖注入的三种方式

Spring中的核心:IOC控制反转,依赖注入的三种方式:构造器、setter方法和注解注入

Spring核心技术学习总结

这段时间,看了一些Spring文档和资料,对其有了一个基本的了解。Spring的核心技术由两大部分组成:IoC和AOP,下面我们就分别对它们进行介绍。 1  IoC技术 1.1  预备知识      IoC即Inversion of Control(控制反转)的简写,它是一种设计模式,Spring只不过是实现了该模式。IoC是工厂模式的升华,同时涉及到了反射的概念。所以,在正式介绍IoC之前,首先介绍一下几个基本的概念及技术:接口、工厂模式、反射。 1.1.1  接口      作为面向对象的语言,和C++不同的是,JAVA不支持多重继承,即一个子

spring是什么

简单来说,Spring就是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 下面从整体上认识一下Spring的主要特征: 轻量:从大小与开销两方面而言Spring都是轻量的。此外,Spr...

android 项目大总结。svn可以查看学习项目。好东西分享

众多Android 开源项目推荐,给力工作给力学习 FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。 项目地址:http://www.fbreader.org/FBReaderJ/ Angle Angle是一款专为Android平台设计的,适合

Spring 技术核心 IOC AOP <一> IOC详解

Spring是一个开源框架,他是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许选择使用那一个组件。Spring框架的分层架构,由7个定义良好的模块构成。Spri...

Spring核心技术学习总结

这段时间,看了一些Spring文档和资料,对其有了一个基本的了解。Spring的核心技术由两大部分组成:IoC和AOP,下面我们就分别对它们进行介绍。 1 IoC技术 1.1 预备知识 IoC即Inversion of Control(控制反转)的简写,它是一种设计模式,Spring只不过是实现了该模式。IoC是工厂模式的升华,同时涉及到了反射的概念。所以,在正式介绍IoC之前,首先介绍一下几个基本的概念及技术:接口、工厂模式、反射。 1.1.1 接口 作为面向对象的语言,和C++不同的是,JAVA不支持多重继承,即一个子类只能继承自一个父类,像Son ex
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)