zoukankan      html  css  js  c++  java
  • ICO注入属性值操作

       IOC注入属性

    一:使用外部bean注入:

      步骤一:在配置文件中实例化实现类:

        <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>

      步骤二: 然后实例化使用类:

        <bean id="userService" class="com.action.spring.service.UserService"></bean>

      步骤三:此时通过注入外部Bean的方式注入属性。

        <property name="userDao" ref="userDaoImpl"></property>

    其中name为属性名。此处需要注意的是和普通值使用的value不同的是,注入外部Bean需要使用 ref 属性。

     

    直接上代码: 创建UserService类和UserDao类,其中UserDao为抽象类。对UserDao进行重写UserDaoImpl类。

    1. UserServoce使用类:

      package com.action.spring.service;
      ​
      import com.action.spring.dao.UserDao;
      import com.action.spring.dao.UserDaoImpl;
      ​
      public class UserService {
          
          private UserDao userDao;
          
          public void setUserDao(UserDao userDao) {
              this.userDao = userDao;
          }
      ​
          public void add() throws Exception {
                      
              System.out.println("Service add....................");
              userDao.update();
              
              /* 传统方法
               * UserDao userDao = new UserDaoImpl(); 
               * userDao.update();
               */
          }
      }
      1. UserDao基类

      package com.action.spring.dao;
      ​
      public interface UserDao {
          public abstract void update() throws Exception;
      }
      1. UserDao类的实现UserDaoImpl

      package com.action.spring.dao;
      ​
      public class UserDaoImpl implements UserDao{
      ​
          private String uname;
          public void setUname(String uname) {
              this.uname = uname;
          }
          @Override
          public void update() throws Exception {
              System.out.println("update...............");
          }
      }
      1. 重点重点: 配置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 -->
      <bean id="userService" class="com.action.spring.service.UserService">
          <!--将userService中的元素userDao初始化为实现类userDaoImpl-->
          <property name="userDao" ref="userDaoImpl"></property>
      </bean>
      <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>
          
      </beans>
       

     

    二:使用内部bean注入属性

    其实也就是不使用ref属性,直接使用嵌套在内部bean:

    <?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="userService" class="com.action.spring.service.UserService">
        <!--将userService中的元素userDao初始化为实现类userDaoImpl-->
        <property name="userDao">
            <!--使用嵌套来是实现内部bean,但是个人建议最好用外部bean,更加清晰,而且可以实例化对象-->
            <bean id="userDao" class="com.action.spring.dao.UserDao"></bean>
        </property>
    </bean>
    <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>
        
    </beans>

     

     

    三:使用级联赋值注入属性:

      注意:级联赋值的时候是需要有get方法获取属性的,没有则会报错

    <bean id="userService" class="com.action.spring.service.UserService">
        <!--将userService中的元素userDao初始化为实现类userDaoImpl-->
        <property name="userDao">
            <bean id="userDao" class="com.action.spring.dao.UserDao"></bean>
        </property>
        
        <!--使用级联赋值来直接给其中的元素赋值,但是注意,赋值的这个元素一定要有get方法来获取-->
        <property id="userDao.name" value="hanxiao"></property>
        
    </bean>
    <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>
        
    </beans>

     

     

    四:IOC注入集合类型属性

        一:注入数组类型属性

        二:注入List类型属性

        三:注入Map类型属性

     这个比较简单。不直接设置value,而是在property标签下面加入map,list,数组的标签,在他们的标签下写入多个value值

     

        四:放入多个对象的list

      使用ref+bean传递路径,引用外部类

     

        五:提取部分类型属性值eg:list:

    <!--
        1.设置约束,在spring配置文件中引入名称util,设置xsi:schemLocation,将p命名空间那个复制下来,然后把所有的beans换为util
            xmls:util="http://www.springframework.org/scheme/util"
            xsi:schemeLocation="http://www.springframework.org/scheme/util http://www.springframework.org/scheme/util/spring-util.xsd"
    ​
        2.使用util标签完成对list集合注入提取:
        <util:list id="booklist">
            <value></value>
            <value></value>
        </util:list>
    --><!--1.提取list集合类型属性注入-->
    <util:list id="bookList">
        <value>list1</value>
        <value>list2</value>
        <value>list3</value>
    </util:list><!--提取list集合类型属性注入使用,使用ref引入外部-->
    <bean id="book" class="com.spring_test.book">
        <property name="list" ref="bookList"></property>
    </bean>

     

  • 相关阅读:
    (简单) POJ 1860 Currency Exchange,SPFA判圈。
    (简单) POJ 3259 Wormholes,SPFA判断负环。
    (简单) POJ 1502 MPI Maelstrom,Dijkstra。
    (中等) POJ 3660 Cow Contest,Floyd。
    (简单) POJ 2240 Arbitrage,SPFA。
    3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件
    2.Git基础-仓库的获取方式与Git文件的状态变化周期(生命周期)
    1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程
    获取URL参数
    进度条
  • 原文地址:https://www.cnblogs.com/instead-everyone/p/13863472.html
Copyright © 2011-2022 走看看