zoukankan      html  css  js  c++  java
  • 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)、测试结果截图

      

  • 相关阅读:
    Quartz使用总结(转)
    JAVA中使用LOG4J记录日志
    Java用HttpsURLConnection访问https网站的时候如何跳过SSL证书的验证?
    JAVA_HOME设置
    命令行启停mysql数据库
    本地jar包引入到maven项目中
    Could not clean server of obsolete files
    python基础一
    11-数据的增删改
    10-外键的变种 三种关系
  • 原文地址:https://www.cnblogs.com/northeastTycoon/p/9856224.html
Copyright © 2011-2022 走看看