zoukankan      html  css  js  c++  java
  • spring 配置bean的方法及依赖注入发方式

    Bean 的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean

    这里依据全类名配置bean

    <bean id="helloWord" class="com.spring.HelloWord">
     <property name="userName" value="springsss"></property>
    </bean>


    依赖注入发方式:

    属性注入:

    applicationContext.xml配置文件为:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
    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">
    <!-- 配置bean -->
    <bean id="helloWord" class="com.spring.HelloWord">
     <property name="userName" value="springsss"></property>
    </bean>
    </beans>

    package com.spring;
    public class HelloWord {
    private String userName;
    public void setUserName(String userName) {
    this.userName = userName;
    }
    public void hello() {
    System.out.println("hello:" + userName);
    }
    public HelloWord(){
    System.out.println("construct!!!!!!!!!!");
    }
    }


    package com.spring;


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


    public class Test {
    public static void main(String[] args) {
    /**
    * 创建对象及为对象赋值交给spring完毕
    */
    // HelloWord helloWord = new HelloWord();
    // helloWord.setUserName("hello");
    // helloWord.hello();

    //1.创建spring IOC容器
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");


    //2从容器中获得Bean
    HelloWord helloWord = (HelloWord) ctx.getBean("helloWord");


    //3.调用方法
    helloWord.hello();

    }
    }

    输出结果为:

    construct!!!!!!!!!!
    hello:springsss



    构造器注入:

    applicationContext.xml文件为

    <?xml version="1.0" encoding="UTF-8"?

    >
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
    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">
    <!-- 配置bean -->
    <bean id="car" class="com.spring.Car">
    <constructor-arg value="green"></constructor-arg>
    <constructor-arg value="22"></constructor-arg>

    </bean>
    </beans>


    public class Car {
     private String name;
     private String color;
     private int num;
    public Car(String color, int num) {
    super();
    this.color = color;
    this.num = num;
    }
    @Override
    public String toString() {
    return "Car [name=" + name + ", color=" + color + ", num=" + num + "]";
    }


    }


    package com.spring;


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


    public class Test {
    public static void main(String[] args) {


    //1.创建spring IOC容器
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");


    Car car = (Car) ctx.getBean("car");
    System.out.println(car.toString());

    }
    }

    输出结果为:

    Car [name=null, color=green, num=22]



  • 相关阅读:
    今天英语有何新收获?
    今天了解了解了外包这一行业
    今天英语有何新收获?
    sicp 练习1.7
    今天英语有何新收获
    今天英语有何新收获?
    反射(初尝)
    初学正则表达式
    sicp 练习1.8 【有点疑惑】
    [tip]Windows filename MAX_PATH limitation
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7372782.html
Copyright © 2011-2022 走看看