Spring MVC快速上手教程

本文是Spring MVC的快速上手教程,通过实现图书列表页面,涵盖Business Objects、DAO、Service、Controller及View的创建,以及配置和部署。教程使用Hibernate和MySQL数据库,讲解了Bean的自动注入,以及Spring MVC的Convention over Configuration机制。
摘要由CSDN通过智能技术生成

Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项目是B/S结构的,所以这里的快速上手教程会以Spring MVC为切入点,用最简单的代码一步一步来实现一个图书列表的页面。

在正式动手之前需要做一些准备工作,先安装并设置好JDK 1.5和Tomcat 5,关于数据库及其访问方式可以根据个人习惯进行选择,教程中使用MySQL数据库和Hibernate(映射由Hibernate Annotation实现)。请将实际使用到的jar文件复制到WEB-INF/lib目录中,整个项目的结构见图1,教程中用到的jar文件见图2。

结构及用到的Jar文件

项目中的Bean定义分散在多个XML文件中,每完成一部分代码就给出相应的配置,最后再进行整合和部署。配置中使用default-autowire="byName"实现了Bean的自动织入,节省了很多个工作量,只需注意Bean及属性的命名即可。

Step 1.Business Objects & DAO

教程中的例子涉及到两个实体对象,代表文章的Article类和代表作者的Author类,分别对应了数据库中的article表和author表,一篇文章有一个作者,而一个作者可以有多篇文章。类的代码如下(省略getter和setter):

代码:Article.java

package  demo.model;

import  javax.persistence. * ;

@Entity
public   class  Article  {
    @Id
    @GeneratedValue
    
private Long id;
    
    
private String title;
    
    @ManyToOne
    
private Author author;
    
}

代码:Author.java

package  demo.model;

import  java.util.List;
import  javax.persistence. * ;

@Entity
public   class  Author  {
    @Id
    @GeneratedValue
    
private Long id;
    
    
private String name;
    
    @OneToMany
    
private List<Article> articles;
    
}

在MySQL中创建数据表的SQL语句如下,数据请自行添加(如果使用Hibernate,表可以根据映射自动生成,具体做法请参考Hibernate文档):

代码:数据库创建SQL

CREATE   DATABASE  `articles`  DEFAULT   CHARACTER   SET  utf8 COLLATE utf8_general_ci;
USE  articles;

CREATE   TABLE  `article` (
  `id` 
bigint ( 20 NOT   NULL  auto_increment,
  `title` 
varchar ( 100 NOT   NULL   default   '' ,
  `author_id` 
bigint ( 20 NOT   NULL   default   ' 0 ' ,
  
PRIMARY   KEY   (`id`)
) ENGINE
= MyISAM  DEFAULT  CHARSET = utf8;

CREATE   TABLE  `author` (
  `id` 
bigint ( 20 NOT   NULL  auto_increment,
  `name` 
varchar ( 100 NOT   NULL   default   '' ,
  
PRIMARY   KEY   (`id`)
) ENGINE
= MyISAM  DEFAULT  CHARSET = utf8;

考虑到可能会有多种DAO的实现,所以在DAO层先定义一个IArticleDao接口,随后可以自由选择具体的实现方式,此处结合Spring的HibernateDaoSupport使用Hibernate来进行实现:

代码:IArticleDao.java

package  demo.dao;

import  java.util.List;

import  demo.model.Article;

public   interface  IArticleDao  {
    
public List<Article> loadAllArticles();
}

代码:ArticleDao.java

package  demo.dao;

import  java.util.List;
import  org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import  demo.model.Article;

public   class  ArticleDao  extends  HibernateDaoSupport  implements  IArticleDao  {

    @SuppressWarnings(
"unchecked")
    
public List<Article> loadAllArticles() {
        
return (List<Article>)getHibernateTemplate().loadAll(Article.class);
    }


}

接下来对Hibernate进行相应的配置,如果使用了JDO或者iBatis,请参考Spring文档。applicationContext-dao.xml内容如下:

代码:applicationContext-dao.xml

<? xml version="1.0" encoding="UTF-8" ?>
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值