• Spring IOC(通过实例介绍,属性与构造方法注入)


    概括说明:下面通过实例介绍下属性方法注入、构造方法注入

    1、源码结构图

      

    2、代码介绍

       (1)、Dao接口 :UserDAO

       (2)、Dao接口实现:UserDAOImpl

       (3)、实体类:User

       (4)、服务层接口:UserService

       (5)、服务层接口实现:UserServiceImpl

       (6)、测试主类:UserServiceTest

    3、源代码

       (1)、Dao接口 :UserDAO

       

    package com.northeasttycoon.dao;
    
    import com.northeasttycoon.model.User;
    
    /**
     * @author tycoon
     */
    public interface UserDAO {
    	
    	public void save(User user);
    }
    

      (2)、Dao接口实现:UserDAOImpl

    package com.northeasttycoon.dao.impl;
    
    import com.northeasttycoon.dao.UserDAO;
    import com.northeasttycoon.model.User;
    /**
     * @author tycoon
     */
    public class UserDAOImpl implements UserDAO {
    
    	// 保存数据方法
    	public void save(User user) {
    		
    		System.out.println("username:"+user.getUsername() +" ,userpassword:"+user.getPassword()+ " ,saved in Oracle!");		
    		System.out.println(user.getUsername() + " saved in DB2!");		
    	}
    }
    

       (3)、实体类:User

    package com.northeasttycoon.model;
    
    /**
     * 用户实体类
     * @author tycoon
     *
     */
    public class User {
    	
    	private String username;
    	private String password;
    	
    	public String getUsername() {
    		return username;
    	}
    	
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	
    	public String getPassword() {
    		return password;
    	}
    	
    	public void setPassword(String password) {
    		this.password = password;
    	}
    }
    

       (4)、服务层接口:UserService

      

    package com.northeasttycoon.service;
    
    import com.northeasttycoon.model.User;
    
    /**
     * 服务层接口
     * @author tycoon
     *
     */
    public interface UserService {
    	
    	//处理新增用户业务逻辑
    	public void add(User user);
    }
    

       (5)、服务层接口实现:UserServiceImpl

    package com.northeasttycoon.service;
    
    import com.northeasttycoon.dao.UserDAO;
    import com.northeasttycoon.model.User;
    
    /**
     * 服务层接口实现类
     * @author tycoon
     */
    public class UserServiceImpl {
    
        // 属性注册方式实现方法注入
        private UserDAO userDAO;
    
        public void add(User user) {
            userDAO.save(user);
        }
    
        public UserDAO getUserDAO() {
            return userDAO;
        }
    
        public void setUserDAO(UserDAO userDAO) {
            this.userDAO = userDAO;
        }
        
        // 构造方法注入
        // public UserServiceImpl(UserDAO userDAO) {
        // super();
        // this.userDAO = userDAO;
        // }
    }

       (6)、测试主类:UserServiceTest

    package com.northeasttycoon.service.test;
    
    import org.apache.log4j.Logger;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.northeasttycoon.model.User;
    import com.northeasttycoon.service.UserServiceImpl;
    
    // 测试类
    public class UserServiceTest {
    
    	final static Logger logger = Logger.getLogger(UserServiceTest.class);
    
    	@Test
    	public void testAdd() throws Exception {
    		logger.info("insert sucessful start! ");
    		// 创建容器
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
    		UserServiceImpl service = (UserServiceImpl) ctx.getBean("userService");
    
    		// 创建U实例
    		User u = new User();
    		u.setUsername("东北大亨");
    		u.setPassword("123456");
    		service.add(u);
    		logger.info("insert sucessful end! ");
    	}
    }
    

     (7)、配置文件

    <?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-2.5.xsd">
      <bean id="u" class="com.northeasttycoon.dao.impl.UserDAOImpl"/>
      <bean id="userService" class="com.northeasttycoon.service.UserServiceImpl">
      <!--  通过property元素 把U实例注册到userDAO中   -->
      	 <property name="userDAO">
      	 	<ref bean="u"/>
      	 </property>
      	   <!--  通过构造方法 把U实例注册到userDAO中   -->
     <!--<constructor-arg>
    			<ref bean="u"/>
    	 </constructor-arg>-->
      </bean>
    </beans>
    

      (8)、测试结果截图

      

  • 相关阅读:
    【CH6801】棋盘覆盖
    【模板】二分图匹配
    【POJ3683】Priest John's Busiest Day
    【Asia Yokohama Regional Contest 2018】Arithmetic Progressions
    【POJ2230】Watchcow
    【CF263D】Cycle in Graph
    【CF131D】Subway
    【洛谷P2709】小B的询问
    【模板】2-SAT
    【模板】矩阵快速幂
  • 原文地址:https://www.cnblogs.com/northeastTycoon/p/9856224.html
Copyright © 2020-2023  润新知