SpringMvc(二)配置SpringMvc(一)

2014-11-24 00:38:34 · 作者: · 浏览: 0

最近在学习SpringMvc,自己搭建一次,也算做做笔记了,分享一下,用的Eclipse jee版,Eclipse新建web项目就不说了,在前面有篇文章有介绍,直接说配置Spring吧,肯定要先在web.xml配下拦截器

  

  
  
   
    springMVC
   
  
    
    
     index.html
     
    
     index.htm
     
    
     index.jsp
     
    
     default.html
     
    
     default.htm
     
    
     default.jsp
     
   

   

   

    
    
     org.springframework.web.context.ContextLoaderListener
     
   

   

    
    
     contextConfigLocation
     
    
     classpath:applicationContext.xml
     
   


   

    
    
     dispatcher
     
    
     org.springframework.web.servlet.DispatcherServlet
     
     
     
     
      contextConfigLocation
      
     
      classpath:servlet-context.xml
      
     
     
    
     1
     
   

   

    
    
     dispatcher
     
    
     *.action
     
   

   

    
    
     characterEncoding
     
    
     org.springframework.web.filter.CharacterEncodingFilter
     
     
     
      encoding
      
     
      UTF-8
      
     
   

   

    
    
     characterEncoding
     
    
     /*
     
   
  

  
这里配了一个servlet一个application容器,配置文件的位置都放在根路径下,我们就可以放在resource下。顾名思义
先看servlet.xml

  

  
	
   
	
    
     
     
   
	
   
	
   
	
   
	
   

  

关于HandlerMapping和handlerAdapter这里就直接转下别人博客里的解释了:如下

SpringMVC中,满足条件的请求进入到负责请求分发的DispatcherServlet,DispatcherServlet根据请求url到控制器的映射(HandlerMapping中保存),HandlerMapping最终返回HandlerExecutionChain,其中包含了具体的处理对象handler(也即我们编程时写的controller)以及一系列的拦截器interceptors,此时DispatcherServlet会根据返回的HandlerExecutionChain中的handler找到支持这一处理器类型的适配器(handlerAdapter),在处理器适配器中最终会去调用控制器的请求响应方法并返回结果视图(ModelAndView)

然后是application.xml

  

  
	
   
	
   
	
   
	
   
	
   
 	
   
	
   
	
    
     
     
     
     
     
     
   
	
	
   
	
    
     
   

  

这里就是配下要扫描注解的路径,然后配个数据库连接,基本上配置文件就写好了,我们可以简单写点小程序了,在建好的web项目里继续划分出dao,service,control(Eclipse搭建web项目那篇文章的例子)

\结构很清晰的说。好像忘了还有log4j,先配好吧,方便调试啥的

log4j.rootCategory=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
同样放在resource下,log4j.properties。简单配置下只输出info到控制台。然后终于可以开始写代码了,写什么好呢,想了想就做个简单的记账系统吧,手机上有很多这种应用,记录每天花的钱,收入的钱,然后有个汇总啥的,功能不多,好实现。看来代码还是不能先写,先搞定数据库,如下设计

\

当然我也没设计过这种软件,只是凭空想象的,简单弄这么两个表,应该一看就明白了,数据库id都设自增长,账目时间,金额,出入方向,账目类型就是可以自定义类型(吃饭,娱乐,工资)然后类型细分的话又做了个类型表,可以用父类ID来规划子父类关系,比如吃饭再分为早饭,午饭,晚饭等,都是扯淡,没啥好说的。至于金额是int,这里数据库按最小单位的分来记录,所以不带小数点的。然后又了数据库就可以对应写两个entity实体类了

package com.springMvc.dao.entity;
import java.sql.Date;
public class Account {
	private String id;//数据库ID
	private Date acc_time;//时间
	private Integer acc_jine;//金额
	private boolean acc_shouzhi;//出入
	private Integer acc_type;//分类
	private String acc_beizhu;//备注
	//getters and setters

package com.springMvc.dao.entity;

public class Type {
	private Integer type_id;//数据库ID
	private String type_name;//类型描述
	private Integer type_parent;//父类ID getters and setters略
然后是Manager这里先简单写个账目的Manager,写两个

package com.springMvc.dao.manager;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.springMvc.dao.entity.Account;
/*通过Spring注解定义一个Dao,这里简单写下略去了Dao直接写在Manager里了*/
@Repository
public class AccountManager {
	/*自动注入jdbcTemplate的bean*/
	@Autowired
	private JdbcTemplate jdbcTemplate;
	//logger
	private final static Logger logger = Logger.getLogger(AccountManager.class);
	
	public int insertAccount(Account ac){
		logger.info("----------------账目插入数据库,dao层--!");
		/*Sql*/
		String sql = "insert into account_info (acc_time,acc_jine,acc_shouzhi,acc_