• 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 中只有一个实例!

  • 相关阅读:
    centos 安装 谷歌BBR
    centos上mailx通过465端口发送邮件
    centos 6的LAMP一键安装包(可选择/升级版本)
    Linux 一键安装最新内核并开启 BBR 脚本
    CentOS 7安装Xfce和VNC
    重构手法之简化函数调用【4】
    重构手法之简化函数调用【3】
    重构手法之简化函数调用【2】
    重构手法之简化函数调用【1】
    重构手法之简化条件表达式【4】
  • 原文地址:https://www.cnblogs.com/peng8098/p/java_11.html
Copyright © 2020-2023  润新知