Spring基础之一:第一个Spring




一:导入Spring时遇到的org/apache/commons/logging/LogFactory的问题

原因是Myeclipse里缺少commons-logging.jar 这个包,

CSDN上的下载地址:http://download.csdn.net/detail/ruantao1989/4666059


二:解压spring时,rar报错:“路径和文件名总长度不能超过260字符”

我试了好几次,这个要先把压缩包里边的 根文件夹改名,再解压出来就行了

就是:打开压缩包,看到rar里第一个文件夹改名成“1”,再解压出来就行了


三:从serviceTest开始分析Spring执行过程

总共需要这么几个文件:


UserService.java :外界执行程序的统一接口

UserServiceTest.java :此接口的测试

IUserDAO.java :方法接口

UserDAOImpl.java :被代理的、具体实现

User.java :就是个VO

springBeans.xml :这个是Spring动态代理的xml配置


整个结构和DAO差不多,我前一篇博文分析得很细了,这就说说不一样的理解:

1.先看test的执行顺序

	@Test
	public void testAdd() throws Exception {
		
		//ApplicationContext代替beanFactory
		ApplicationContext ctx = new ClassPathXmlApplicationContext("springBeans.xml");
		//相当于从代理类得到具体实例,由xml决定怎么选择类实例化	
		UserService service = (UserService)ctx.getBean("userService01");
			
		User u = new User();//手动组装User实例 u
		u.setUsername("张三");
		u.setPassword("123456");
		service.add(u);//把组装好的u传给xml实例化的service
	}


2.springBeans.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-2.5.xsd">

  <!-- 相当于调用了无参构造,实例化了u1对象-->
  <bean id="u1" class="com.rt.springdemo.dao.impl.UserDAOImpl"></bean>
	
  <bean id="userService01" class="com.rt.springdemo.service.UserService">	 
  	<!-- property这句就相当于调用 set'UserDao'(u1)-->
  	<property name="userDAO" ref="u1" />  	
  </bean>
  

</beans>



3.server

package com.rt.springdemo.service;
import com.rt.springdemo.dao.IUserDAO;
import com.rt.springdemo.model.User;

public class UserService {
	
	private IUserDAO userDAO;  //xml中,"u1"对应class="com.rt.springdemo.dao.impl.UserDAOImpl",将注入在此
	
	public void add(User user) {//test调用这个add方法
		userDAO.save(user);
	}
	public IUserDAO getUserDAO() {
		return userDAO;
	}
	public void setUserDAO(IUserDAO userDAO) {//xml中调用的方法
		this.userDAO = userDAO;
	}
	
}


4.impl具体执行

public interface IUserDAO {
	public void save(User user);//接口里就这一个方法
}

package com.rt.springdemo.dao.impl;

import com.rt.springdemo.dao.IUserDAO;
import com.rt.springdemo.model.User;


public class UserDAOImpl implements IUserDAO {

	public void save(User user) {
		//Hibernate、JDBC等.....
		System.out.println("user saved!");
	}

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值