posts - 495,comments - 227,trackbacks - 0

          1.setter注入:
          beans.xml:
           

          <?xml version="1.0" encoding="UTF-8"?>

          <!--
            - Application context definition for JPetStore's business layer.
            - Contains bean references to the transaction manager and to the DAOs in
            - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
            
          -->
          <beans xmlns="http://www.springframework.org/schema/beans"
                  xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:aop
          ="http://www.springframework.org/schema/aop"
                  xmlns:tx
          ="http://www.springframework.org/schema/tx"
                  xsi:schemaLocation
          ="
                      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
                      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
          >
              
              
          <bean name="userDao" class="com.linying.dao.UserDao"></bean>
              
              
          <bean name="userDomain" class="com.linying.domain.User"></bean>
              
              
          <bean name="userAction" class="com.linying.service.UserAction">
                  
          <property name="user" ref="userDomain"></property>
                  
          <property name="userDao" ref="userDao"></property> 
             
              
          </bean>    
              
          </beans>


          User.java:
           

          package com.linying.domain;

          /**
           * 領(lǐng)域?qū)ο?br />  * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午10:01:05
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class User {
              
          private int id;

              
          private String name;

              
          private String password;

              
          public User() {
                  System.out.println(
          "User構(gòu)造");
              }

              
          public String getName() {
                  
          return name;
              }

              
          public void setName(String name) {
                  
          this.name = name;
              }

              
          public String getPassword() {
                  
          return password;
              }

              
          public void setPassword(String password) {
                  
          this.password = password;
              }

              
          public int getId() {
                  
          return id;
              }

              
          public void setId(int id) {
                  
          this.id = id;
              }
          }


          UserDao.java:
           

          package com.linying.dao;

          import com.linying.domain.User;

          /**
           * UserDao
           * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午10:17:55
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class UserDao {
              
          public UserDao() {
                  System.out.println(
          "UserDao構(gòu)造");
              }

              
          public void insert(User user) {
                  System.out.println(
          "執(zhí)行insert方法");
              }
          }


          UserAction.java:
           

          package com.linying.service;

          import com.linying.dao.UserDao;
          import com.linying.domain.User;

          /**
           * UserAction
           * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午10:28:16
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class UserAction {
              
          private User user;

              
          private UserDao userDao;

              
          public UserAction() {
                  System.out.println(
          "UserAction構(gòu)造");
              }

              
          /**
               * 保存User對(duì)象
               * 
               
          */
              
          public void saveUser() {
                  userDao.insert(user);
                  System.out.println(
          "saveUser方法被調(diào)用");
              }

              
          public void setUser(User user) {
                  
          this.user = user;
                  System.out.println(
          "setUser方法被調(diào)用");
              }

              
          public void setUserDao(UserDao userDao) {
                  
          this.userDao = userDao;
                  System.out.println(
          "setUserDao方法被調(diào)用");
              }


          }


          測試——Main.java:
           

          package com.linying;

          import org.springframework.beans.factory.BeanFactory;
          import org.springframework.context.support.ClassPathXmlApplicationContext;

          import com.linying.service.UserAction;

          /**
           * 測試程序入口
           * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午11:20:24
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class Main {

              
          /**
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  
          // TODO Auto-generated method stub
                  BeanFactory bf = (BeanFactory) (new ClassPathXmlApplicationContext(
                          
          "beans.xml"));

                  UserAction userAction 
          = (UserAction) bf.getBean("userAction");
                  userAction.saveUser();

              }

          }


          控制臺(tái)輸出:
          UserDao構(gòu)造
          User構(gòu)造
          UserAction構(gòu)造
          setUser方法被調(diào)用
          setUserDao方法被調(diào)用
          執(zhí)行insert方法
          saveUser方法被調(diào)用

          2.靜態(tài)工廠注入
          修改beans.xml:
           

              <bean name="userDao" class="com.linying.factory.DaoFactory" factory-method="getUserDao"></bean>
              
              
          <bean name="userDomain" class="com.linying.domain.User"></bean>
              
              
          <bean name="userAction" class="com.linying.service.UserAction">
                  
          <property name="user" ref="userDomain"></property>
                  
          <property name="userDao" ref="userDao"></property>    
              
          </bean>


          增加工廠:
           

          package com.linying.factory;

          import com.linying.dao.UserDao;
          /**
           * Dao靜態(tài)工廠
           * 
          @author Ying-er
           * @time 2010-6-20 下午04:23:25
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class DaoFactory {
              
          public static UserDao getUserDao(){
                  
          return new UserDao();
              }
          }


          控制臺(tái)輸出:
          UserDao構(gòu)造
          User構(gòu)造
          UserAction構(gòu)造
          setUser方法被調(diào)用
          setUserDao方法被調(diào)用
          執(zhí)行insert方法
          saveUser方法被調(diào)用

          3.實(shí)例工廠注入
          修改beans.xml:
           

              <bean name="daoFactory" class="com.linying.factory.DaoFactory"></bean>
              
              
          <bean name="userDao" factory-bean="daoFactory" factory-method="getUserDao"></bean>
              
              
          <bean name="userDomain" class="com.linying.domain.User"></bean>
              
              
          <bean name="userAction" class="com.linying.service.UserAction">
                  
          <property name="user" ref="userDomain"></property>
                  
          <property name="userDao" ref="userDao"></property>    
              
          </bean>


          增加實(shí)例工廠:
           

          package com.linying.factory;

          import com.linying.dao.UserDao;
          /**
           * Dao實(shí)例工廠
           * 
          @author Ying-er
           * @time 2010-6-20 下午04:23:25
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class DaoFactory {
              
          public UserDao getUserDao(){
                  
          return new UserDao();
              }
          }


          控制臺(tái)輸出:
          UserDao構(gòu)造
          User構(gòu)造
          UserAction構(gòu)造
          setUser方法被調(diào)用
          setUserDao方法被調(diào)用
          執(zhí)行insert方法
          saveUser方法被調(diào)用

          4.構(gòu)造器注入
          修改beans.xml:
           

              <bean name="userDao" class="com.linying.dao.UserDao"></bean>
              
              
          <bean name="userDomain" class="com.linying.domain.User"></bean>
              
              
          <bean name="userAction" class="com.linying.service.UserAction">
                  
          <constructor-arg ref="userDomain"></constructor-arg>
                  
          <constructor-arg ref="userDao"></constructor-arg> 
             
              
          </bean>   

          修改UserAction.java:
           

          package com.linying.service;

          import com.linying.dao.UserDao;
          import com.linying.domain.User;

          /**
           * UserAction
           * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午10:28:16
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class UserAction {
              
          private User user;

              
          private UserDao userDao;

              
          public UserAction() {
                  System.out.println(
          "UserAction構(gòu)造");
              }

              
          public UserAction(User user,UserDao userDao){
                  System.out.println(
          "UserAction構(gòu)造(有參構(gòu)造)");
                  
          this.user = user;
                  
          this.userDao = userDao;
              }

              
          /**
               * 保存User對(duì)象
               * 
               
          */
              
          public void saveUser() {
                  userDao.insert(user);
                  System.out.println(
          "saveUser方法被調(diào)用");
              }

          //    public void setUser(User user) {
          //        this.user = user;
          //        System.out.println("setUser方法被調(diào)用");
          //    }
          //
          //    public void setUserDao(UserDao userDao) {
          //        this.userDao = userDao;
          //        System.out.println("setUserDao方法被調(diào)用");
          //    }

          }


          控制臺(tái)輸出:
          UserDao構(gòu)造
          User構(gòu)造
          UserAction構(gòu)造(有參構(gòu)造)
          執(zhí)行insert方法
          saveUser方法被調(diào)用

          5.集合注入
          beans.xml:
           

              <bean name="daoFactory" class="com.linying.factory.DaoFactory"></bean>

              
          <bean name="userDao" factory-bean="daoFactory"
                  factory-method
          ="getUserDao">
              
          </bean>

              
          <bean name="userDomain" class="com.linying.domain.User">
                  
          <property name="id">
                      
          <value>1</value>
                  
          </property>
                  
          <property name="name" value="admin"></property>
                  
          <property name="password" value="123"></property>
                  
          <!--property name="birthday" value="1987-06-20"></property>-->
                  
          <property name="listDemo">
                      <list>
                          
          <value>list-1</value>
                          
          <value>list-2</value>
                      
          </list>

                  
          </property>
                  
          <property name="setDemo">
                      <set>
                          
          <value>set-1</value>
                          
          <value>set-2</value>
                      
          </set>

                  
          </property>
                  
          <property name="mapDemo">
                      <map>
                          
          <entry key="k1" value="v1"></entry>
                          
          <entry key="k2" value="v2"></entry>
                      
          </map>

                  
          </property>
              
          </bean>

              
          <bean name="userAction" class="com.linying.service.UserAction">
                  
          <property name="user" ref="userDomain"></property>
                  
          <property name="userDao" ref="userDao"></property>
              
          </bean>


          User.java:
           

          package com.linying.domain;

          import java.util.Date;
          import java.util.List;
          import java.util.Map;
          import java.util.Set;

          /**
           * 領(lǐng)域?qū)ο?br />  * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午10:01:05
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class User {
              
          private int id;

              
          private String name;

              
          private String password;

              
          private Date birthday;

              private List<String> listDemo;

              
          private Set<String> setDemo;

              
          private Map<String, String> mapDemo;


              
          public User() {
                  System.out.println(
          "User構(gòu)造");
              }

              
          public String getName() {
                  
          return name;
              }

              
          public void setName(String name) {
                  
          this.name = name;
              }

              
          public String getPassword() {
                  
          return password;
              }

              
          public void setPassword(String password) {
                  
          this.password = password;
              }

              
          public int getId() {
                  
          return id;
              }

              
          public void setId(int id) {
                  
          this.id = id;
              }

              
          public Date getBirthday() {
                  
          return birthday;
              }

              
          public void setBirthday(Date birthday) {
                  
          this.birthday = birthday;
              }

              
          public List<String> getListDemo() {
                  
          return listDemo;
              }

              
          public void setListDemo(List<String> listDemo) {
                  
          this.listDemo = listDemo;
              }

              
          public Map<String, String> getMapDemo() {
                  
          return mapDemo;
              }

              
          public void setMapDemo(Map<String, String> mapDemo) {
                  
          this.mapDemo = mapDemo;
              }

              
          public Set<String> getSetDemo() {
                  
          return setDemo;
              }

              
          public void setSetDemo(Set<String> setDemo) {
                  
          this.setDemo = setDemo;
              }

          }


          Main.java:
           

          package com.linying;

          import org.springframework.beans.factory.BeanFactory;
          import org.springframework.context.support.ClassPathXmlApplicationContext;

          import com.linying.service.UserAction;

          /**
           * 測試程序入口
           * 
           * 
          @author Ying-er
           * @time 2010-6-20 上午11:20:24
           * @mail melody.crazycoding@gmail.com
           * 
          @version 1.00
           
          */
          public class Main {

              
          /**
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  
          // TODO Auto-generated method stub
                  BeanFactory bf = (BeanFactory) (new ClassPathXmlApplicationContext(
                          
          "beans.xml"));

                  UserAction userAction 
          = (UserAction) bf.getBean("userAction");
                  System.out.println(userAction.getUser().getId());
                  System.out.println(userAction.getUser().getName());
                  System.out.println(userAction.getUser().getPassword());
          //        System.out.println(userAction.getUser().getBirthday());
                  System.out.println(userAction.getUser().getListDemo());
                  System.out.println(userAction.getUser().getSetDemo());
                  System.out.println(userAction.getUser().getMapDemo());
              }
          }

          控制臺(tái)輸出:
          UserDao構(gòu)造
          User構(gòu)造
          UserAction構(gòu)造
          setUser方法被調(diào)用
          setUserDao方法被調(diào)用
          1
          admin
          123
          [list-1, list-2]
          [set-1, set-2]
          {k1=v1, k2=v2}
          posted on 2011-10-17 11:28 SIMONE 閱讀(864) 評(píng)論(0)  編輯  收藏 所屬分類: JAVAJSP
          主站蜘蛛池模板: 个旧市| 澜沧| 阿瓦提县| 赤城县| 沙河市| 乃东县| 正蓝旗| 改则县| 商都县| 平邑县| 屏南县| 安顺市| 镇安县| 延庆县| 怀安县| 宝丰县| 伊通| 秭归县| 阿鲁科尔沁旗| 武乡县| 新平| 郑州市| 塔河县| 布尔津县| 渝中区| 乌兰县| 桑日县| 富裕县| 丹凤县| 闵行区| 枝江市| 拉萨市| 安新县| 句容市| 威海市| 沙洋县| 秭归县| 黄山市| 瑞安市| 辽源市| 会昌县|