zoukankan      html  css  js  c++  java
  • Spring IOC创建对象

    4. IOC创建对象的方式

    1. 使用无参构造创建,默认

      User.java 类

      package com.peng.pojo;
      
      public class User {
          private String name;
      
          public User(){
              System.out.println("User无参构造");
          }
      
          public User(String name) {
              this.name = name;
              System.out.println("User有参构造");
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public void show(){
              System.out.println("name="+name);
          }
      }
      

      beans.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
              https://www.springframework.org/schema/beans/spring-beans.xsd">
          <bean id="user" class="com.peng.pojo.User">
              <property name="name" value="peng"/>
          </bean>
      </beans>
      

      MyTest.java 测试类

      import com.peng.pojo.User;
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      public class MyTest {
          public static void main(String[] args) {
              ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
      
              User user = (User)context.getBean("user");
              user.show();
          }
      }
      

      输出

      User无参构造
      name=peng
      
    2. 有参构造创建对象(三种方式)

      <beans>    
      	<!--有参构造的三种方法-->
      
          <!--1.下标赋值-->
          <bean id="user" class="com.peng.pojo.User">
              <constructor-arg index="0" value="peng"/>
          </bean>
      
          <!--2.通过类型创建不建议使用-->
          <bean id="user" class="com.peng.pojo.User">
              <constructor-arg type="java.lang.String" value="peng"/>
          </bean>
      
          <!--3.直接通过参数名来设置-->
          <bean id="user" class="com.peng.pojo.User">
              <constructor-arg name="name" value="peng"/>
          </bean>
      </beans>
      
    3. Spring 容器执行的时候,不管测试类中是否 get,所有的类都已经被实例化了,什么时候用什么时候 get。

      User user = (User)context.getBean("user");
      User user2 = (User)context.getBean("user");
      System.out.println(user == user2); //输出为true
      

      Spring 中只有一个实例!

  • 相关阅读:
    DinnerNow中的Work Flow应用(上) 订单流程
    在Silverlight 2 (Beta2) 中使用webclient上传图片
    初尝dinnernow
    在silverlight 2 (beta1) 中使用BackgroundWorker
    徒劳的尝试 动态修改LINQ TO SQL的表名称
    你是否积极主动(Proactivity)?
    动态加载Silverlight应用的dll文件(可实现插件功能)
    silverlight与javascript交互操作
    DinnerNow中的Work Flow应用(下) 订单流程
    C#中winform窗体常用设置
  • 原文地址:https://www.cnblogs.com/peng8098/p/java_11.html
Copyright © 2011-2022 走看看