Java Spring学习笔记----Bean的依赖注入(1)

Spring常用的两种依赖注入方式:一种是设值注入方式,利用Bean的setter方法设置Bean的属性值;另一种是构造注入,通过给Bean的构造方法传递参数来实现Bean的属性赋值;

1、设值注入方式

直接上代码例子,示例的树结构图如下

Shape.java接口内容

package chapter3;

public interface Shape {
    public double area();//求形状的面积
}    

Circle.java内容:

package chapter3;

public class Circle implements Shape {

    double r;
    public double getR(){
        return this.r;
    }
    public void setR(double r){
        this.r=r;
    }

    @Override
    public double area() {
        // TODO Auto-generated method stub
        return Math.PI*Math.pow(r, 2);
    }

}

Rectangle.java内容

package chapter3;

public class Rectangle implements Shape {

    double width,height;

    public double getWidth(){
        return this.width;
    }
    public void setWidth(double width){
        this.width=width;
    }

    public double getHeight(){
        return this.height;
    }
    public void setHeight(double height){
        this.height=height;
    }

    @Override
    public double area() {
        // TODO Auto-generated method stub
        return width*height;
    }

}

AnyShape.java内容

package chapter3;

public class AnyShape {
    Shape shape;
    public void setShape(Shape shape) {this.shape=shape;}
    public Shape getShape(){return this.shape;}
    public void outputArea(){
        System.out.println("面积="+shape.area());
    }
}

Test.java内容

package chapter3;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.*;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext context=new FileSystemXmlApplicationContext("src/myContext.xml");
        AnyShape shape=(AnyShape)context.getBean("anyShape");
        shape.outputArea();

        AnyShape shape2=(AnyShape)context.getBean("anyShape2");
        shape2.outputArea();
    }

}

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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

           <bean id="myShape" class="chapter3.Circle">
           <property name="R">
           <value>2.5</value>
           </property>
           </bean>

           <bean id="myShape2" class="chapter3.Rectangle">
           <property name="height">
           <value>2</value>
           </property>
           <property name="width">
           <value>5</value>
           </property>
           </bean>

           <bean id="anyShape" class="chapter3.AnyShape">
           <property name="shape">
           <ref bean="myShape"/>
           </property>
           </bean>

            <bean id="anyShape2" class="chapter3.AnyShape">
           <property name="shape">
           <ref bean="myShape2"/>
           </property>
           </bean>

</beans>

原文地址:https://www.cnblogs.com/zyfadmin/p/8988360.html

时间: 2024-10-10 02:28:21

Java Spring学习笔记----Bean的依赖注入(1)的相关文章

spring学习(二)---依赖注入

spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.business.bean; import org.springframework.stereotype.Repository; import testSpring.business.iface.IPrint; /** * UserBean : * @author xuejupo [email protected

EJB学习笔记七(依赖注入)

1.前言 在EJB中也为我们提供了依赖注入的功能,关于什么是依赖注入,在此就不再多分析了. 2.EJB注入 在EJB中注入一般使用的就是@EJB或者@EJBS,两者的区别莫过于注入的类可以实现多个接口.下面来看一下@EJB用到的属性. beanInterface:该属性指定被注入EJB所实现的接口 name:该属性用于指定被注入Bean在JNDI ENC中注册项名称,该名称在不同应用服务器中可能存在差异. beanName:该属性指定被注入EJB的名称,其值与被注入Bean中@StateLess

【ASP.NET MVC 学习笔记】- 04 依赖注入(DI)

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种"需要",就称为依赖注入(Dependency Injection). 2.依赖注入和和所谓的控制反转(Inversion of Control )是一个意思. 3.依赖注入是通过接口实现松耦合的设计模式,是解耦的重要手段. 4.依赖注入分为两步:移除对组件的依赖:通过类的构造器(或setter访问器)

【ASP.NET MVC 学习笔记】- 05 依赖注入工具Ninject

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.Ninject是一款轻量级的DI工具,可通过VS的插件NuGet将其引用到项目中. 2.使用Ninject的步骤: 创建一个Ninject的内核对象 //创建Ninject内核实例 IKernel ninjectKernel = new StandardKernel(); 把公开接口绑定到一个实现了该接口的类上 //绑定接口到实现了该接口的类.这种绑定告诉Ninject,当接收到一个请求IV

Spring学习笔记6---bean配置和bean注入

1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用. 1 bean配置 bean配置有三种方法: 基于xml配置Bean 使用注解定义Bean 基于java类提供Bean定义信息 1.1 基于xml配置Bean 对于基于XML的配置,S

spring框架学习(二)依赖注入

转自:http://blog.csdn.net/lishuangzhe7047/article/details/20740835 ———————————————————————————————————————————— spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入.接口注入不作要求,下面介绍前两种方式. 1,set注入 采用属性的set方法进行初始化,就成为set注入. 1)给普通字符类型赋值. [java] view plaincopyprint? pub

采用Spring管理Bean和依赖注入

1.实例化spring容器 和 从容器获取Bean目标 实例化Spring容器常用的两种办法: 办法一: 在类途径下寻觅配置文件来实例化容器 [引荐运用] ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"}); 办法二: 在文件体系途径下寻觅配置文件来实例化容器 [这种办法能够在开发期间运用] ApplicationContext ctx = new FileSyst

Spring学习笔记(一)

Spring学习笔记(一) Spring核心思想: IOC:  Inversion Of Control (控制反转) / DI: Dependency Injection (依赖注入) AOP: Aspect Oriented Programming (面向切面编程) IOC 1. 简单的应用 Model package com.wangj.spring.model; public class User { private String username; private String pas

不错的Spring学习笔记(转)

Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是spring.jar和commons-logging.jar.此外为了便于测试加入了JUnit包.   在Myeclipse中创建Java项目.   编写一个接口类,为了简单,只加入了一个方法.   Java代码   1.package com.szy.spring.interfacebean;