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

    4. IOC创建对象方式

    4.1 通过无参构造方法来创建

    1、User.java

    public class User {
    
       private String name;
    
       public User() {
           System.out.println("user无参构造方法");
      }
    
       public void setName(String name) {
           this.name = name;
      }
    
       public void show(){
           System.out.println("name="+ name );
      }
    
    }
    

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

    3、测试类

    @Test
    public void test(){
       ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
       //在执行getBean的时候, user已经创建好了 , 通过无参构造
       User user = (User) context.getBean("user");
       //调用对象的方法 .
       user.show();
    }
    

    结果可以发现,在调用show方法之前,User对象已经通过无参构造初始化了!

    4.2 通过有参构造方法来创建

    1、UserT . java

    public class UserT {
    
       private String name;
    
       public UserT(String name) {
           this.name = name;
      }
    
       public void setName(String name) {
           this.name = name;
      }
    
       public void show(){
           System.out.println("name="+ name );
      }
    
    }
    

    2、beans.xml 有三种方式编写

    <!-- 第一种根据index参数下标设置 -->
    <bean id="userT" class="com.kuang.pojo.UserT">
       <!-- index指构造方法 , 下标从0开始 -->
       <constructor-arg index="0" value="kuangshen2"/>
    </bean>
    <!-- 第二种根据参数名字设置 推荐-->
    <bean id="userT" class="com.kuang.pojo.UserT">
       <!-- name指参数名 -->
       <constructor-arg name="name" value="kuangshen2"/>
    </bean>
    <!-- 第三种根据参数类型设置 不推荐 有可能多个参数类型相同-->
    <bean id="userT" class="com.kuang.pojo.UserT">
       <constructor-arg type="java.lang.String" value="kuangshen2"/>
    </bean>
    

    3、测试

    @Test
    public void testT(){
       ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
       UserT user = (UserT) context.getBean("userT");
       user.show();
    }
    

    结论:在配置文件加载的时候。其中管理的对象都已经初始化了!

  • 相关阅读:
    决策树之C4.5算法
    决策树之ID3算法
    AndroidStudio 3.4.2配置 Opencv 3.7
    Android 实现在ImageView上绘图
    Opencv 对比度增强 C++
    Opencv对比度增强 python API
    hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)
    hive的数据导入与数据导出:(本地,云hdfs,hbase),列分隔符的设置,以及hdfs上传给pig如何处理
    hive的map类型处理
    pig的udf编写
  • 原文地址:https://www.cnblogs.com/yhnCoder/p/13647760.html
Copyright © 2011-2022 走看看