zoukankan      html  css  js  c++  java
  • 为什么ioc使用构造方法去创建对象

    为什么ioc使用构造方法去创建对象

    public class User {
      private String name;
      // 将无参数构造方法显式地写出来
      public User(){
        System.out.println("无参数构造方法执行。。。");
     }
      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.ping.pojo.User">
        <property name="name" value="小王"></property>
      </bean>
    </beans>

    测试类:

    package com.ping.dao;
    import com.ping.pojo.User;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    public class UserTest {
      public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new
    ClassPathXmlApplicationContext("beans.xml");
        User user = (User) context.getBean("user");
        user.show();
        System.out.println(user);
     }
    }
    /* 运行结果:
          无参数构造方法执行。。。
          name:小王
          com.ping.pojo.User@13805618
    */
    结合上述运行结果和debug,可以发现,在调用show方法之前,User对象已经通过无参构造初始化
    了!对象初始化之后,类里面方法属性都在对象里面


    需要通过构造方法获得对象,
    User user=(User) context.getbean("user");
    对象可以调用类里面的属性,方法;
    user.属性;
    user.show();

  • 相关阅读:
    Python实现TCP服务端的并发
    python程序中的线程操作
    jmeter命令行执行脚本_动态参数设置
    App客户端性能测试点总结
    App功能测试点总结
    jmeter中生成UUID作为唯一标识符
    Python Unittest进行接口测试的简单示例
    jmeter接口测试中的用例数据分离
    博客园看板娘的简单添加
    (转)后端服务性能压测实践
  • 原文地址:https://www.cnblogs.com/wwwsss/p/13863703.html
Copyright © 2011-2022 走看看