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

    通过无参构造创建

    1. 编写实体类

      public class User {
          private String name;
      
          public User() {
              System.out.println("User的无参构造");
          }
      
          public void show(){
              System.out.println("你好:" + this.name);
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      }
      
    2. 编写applicationContext.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.jh.domain.User">
              <property name="name" value="Spring"/>
          </bean>
      </beans>
      
    3. 测试

      @Test
      public void test01() throws Exception {
          ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
          //在执行getBean之前, User对象就已经被Spring容器通过无参构造创建了
          User user = (User) context.getBean("user");
          user.show();
      }
      

    通过有参构造创建

    1. 编写实体类

      public class User {
          private String name;
      
          public User(String name) {
              System.out.println("User的带参构造");
          }
      
          public void show(){
              System.out.println("你好:" + this.name);
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      }
      
    2. 编写applicationContext.xml文件

      通过构造器注入参数有三种方式

      1. 通过index参数下标注入

        <bean id="user" class="com.jh.domain.User">
            <!-- index指构造方法 , 下标从0开始 -->
            <constructor-arg index="0" value="姓名"/>
        </bean>
        
      2. 通过参数类型注入,不推荐!

        <bean id="user" class="com.jh.domain.User">
            <constructor-arg type="java.lang.String" value="姓名"/>
        </bean>
        
      3. 通过参数名注入

        <bean id="user" class="com.jh.domain.User">
            <!-- name指参数名 -->
            <constructor-arg name="name" value="姓名"/>
        </bean>
        
    3. 测试

      @Test
      public void test01() throws Exception {
          ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
      }
      

    我们发现,即使没通过getBean获取容器的对象,User也被创建了。

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

    懂不懂,都是收获
  • 相关阅读:
    django中的分页管理
    python 时间字符串和时间戳之间的转换
    随机生成英文字母,并且统计频数
    html 中a标签的问题(无反应,跳转,调用方法)
    oracle sid,instance_name,db_name,oracle_sid之间的关系
    备份
    修改yum源
    sql基本语法
    第二章 shell编程基础
    第一章 初识shell程序
  • 原文地址:https://www.cnblogs.com/paidaxing0623/p/14293610.html
Copyright © 2011-2022 走看看