前几天,一直在学spring,然后又学习spring mvc ,再回过头去看spring,本来不是特别熟悉,竟然几乎全部忘记了。于是,立刻写这篇博客来总结一下。这是我写的其中一个程序,大概的逻辑流程。
注意:导入
前两个jar包
1.这个是项目的总体结构。

2.web.xml 配置文件
是自动生成的,没有改,这里主要使用junit4 进行测试了,没有涉及到页面的交互。
3.springmvc-servlet.xml配置文件
<!-- xsl --> <!--xml能引入多个 dtd (之前) xsd 一般称为scheme 一般称为 定义的xml的语法 元数据文件 --> <!-- <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.xsd"> --> <!-- <bean id="u" class="com.dao.impl.UserDAOImpl"> --> <bean id="userDAO" class="com.dao.impl.UserDAOImpl"> <!-- <property name="daoId"></property> --> <!-- <property name="daoStatus" value="good"></property> --> <property name="daoId" value="1"></property> //userdaoImple实现了userdao的接口,在里面有个daoId属性,spring 框架做的事情,就是把在这里赋的值
传到类里。用下面的方法赋给了类。
                      public void setDaoId(int daoId) {
                        this.daoId = daoId;
                      }
此为userdaoimple 里的set,get方法 </bean> <bean id="userDAO1" class="com.dao.impl.UserDAOImpl"> <property name="daoId" value="2"></property> </bean> <bean id="userService" class="com.service.UserService"> </bean>
3.此为userdaoimple方法(省略set,get方法)
public class UserDAOImpl implements UserDAO{
    private int daoId;
    private String daoStatus;
    
    private Set<String>  sets;
	private List<String> lists; 
	private Map<String,String> maps;
4.此为user类方法
public class User {
	private String username;
	private String password;
	public
5.此为userdao接口方法
public interface UserDAO {
	
	
	public void save(User u);
}
6.此为service类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.dao.UserDAO;
import com.model.User;
//功能   存入数据库之前  业务逻辑 认证
public class UserService {
	
	private UserDAO userDAO;
	/*public UserService(UserDAO userDAO){
		super();
		this.userDAO=userDAO;
	}*/
	//private UserDAO userDAO =new UserDAOImpl();
	
	//在实现中可以写多个 oracle、mysql, 用哪个new 谁 面向抽象编程
	
	public void init(){
		System.out.println("init");
	}
	
	
	public UserDAO getUserDAO() {
		return userDAO;
	} 
	
	@Autowired  //必须有参数为空的构造方法 
	//autowire="by type"
	public void setUserDAO(@Qualifier("userDAO")UserDAO userDAO) {
		this.userDAO = userDAO;
	}
	//@Qualifier 可以指定到底哪个bean
	
	public void add(User user){
		userDAO.save(user);
	}
  
	public void destroy(){
		System.out.println("destroy");
	}
   
7.junit test包
新建一个包test,然后在service包下选择userService类,右击新建junit test cast 文件

import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.model.User;
public class UserServiceTest {
	@Test
	public void test() {
		fail("Not yet implemented");
	}
	
	public void testAdd() {
		 ApplicationContext   ctx =new ClassPathXmlApplicationContext("springmvc-servlet.xml"); //此处规定了,映射了springmvc-servlet.xml 文件
		  //UserDAO u1=(UserDAO)ctx.getBean("userDAO");
		  
		 	  
		//  System.out.println(u1);
		/*   UserService service =(UserService)ctx .getBean("userService");
		   UserService service2 =(UserService)ctx .getBean("userService");
		   */
		   //System.out.println(service==service2);
			//UserService service =new UserService();
		/*	User u=new User();
		    u.setUsername("zhang");
		    u.setPassword("zhang");
		    service.add(u);*/
		
		   UserService service =(UserService)ctx.getBean("userService");
		   service.add(new User()); //服务里new 一个user() 对象。 印象中spring 框架,它把new 对象这个事情 做了,不知道理解的对不对
		   System.out.println(service.getUserDAO());
		
	}
                    
                
                
            
        
浙公网安备 33010602011771号