Spring基础之一:第一个Spring

来源:互联网 发布:淘宝网儿童棉服 编辑:程序博客网 时间:2024/04/30 11:41




一:导入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的执行顺序

@Testpublic void testAdd() throws Exception {//ApplicationContext代替beanFactoryApplicationContext ctx = new ClassPathXmlApplicationContext("springBeans.xml");//相当于从代理类得到具体实例,由xml决定怎么选择类实例化UserService service = (UserService)ctx.getBean("userService01");User u = new User();//手动组装User实例 uu.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!");}}






原创粉丝点击