`
yaerfeng1989
  • 浏览: 231011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

springmvc注解配置例子的实例代码下载

阅读更多

原创整理不易,转载请注明出处:springmvc注解配置例子的实例代码下载

代码下载地址:http://www.zuidaima.com/share/1751860180044800.htm

文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。

web.xml配置:

<?xml version=" 1.0 " encoding=" UTF-8 " ?> 
 <web - app xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns=" http://java.sun.com/xml/ns/javaee " xmlns:web=" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " id=" WebApp_ID " version= " 2.5 "> 
 <display - name> s3h3 </display - name> 
 <context - param> 
 <param - name> contextConfigLocation </param - name> 
 <param - value> classpath:applicationContext * .xml </param - value> 
 </context - param> 
 <listener> 
 <listener - class> org.springframework.web.context.ContextLoaderListener </listener - class> 
 </listener> 
 
 <servlet> 
 <servlet - name> spring </servlet - name> 
 <servlet - class> org.springframework.web.servlet.DispatcherServlet </servlet - class> 
 <load - on - startup> </load - on - startup> 
 </servlet> 
 <servlet - mapping> 
 <servlet - name> spring </servlet - name> 
<!-- 这里在配成spring,下边也要写一个名为spring - servlet.xml的文件,主要用来配置它的controller --> 
 <url - pattern>* . do </url - pattern> 
 </servlet - mapping> 
 <welcome - file - list> 
 <welcome - file> index.jsp </welcome - file> 
 </welcome - file - list> 
 </web - app> 

 

spring-servlet,主要配置controller的信息

<?xml version="1.0"encoding="UTF-8"?> 
 <beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
 xmlns:context="http://www.springframework.org/schema/context" 
 xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
 
 <context:annotation-config /> 
 <!-- 把标记了@Controller注解的类转换为bean --> 
 <context:component-scan base-package="com.mvc.controller" /> 
 <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> 
 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 
 
 <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> 
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
 p:prefix="/WEB-INF/view/" p:suffix=".jsp" /> 
 
 <bean id="multipartResolver" 
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver" 
 p:defaultEncoding="utf-8" /> 
 </beans> 

 

applicationContext.xml代码

<?xml version="1.0"encoding="UTF-8"?> 
 <beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 
 xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" 
 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-3.0.xsd 
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
 
 <context:annotation-config /> 
 <context:component-scan base-package="com.mvc" /> <!-- 自动扫描所有注解该路径 --> 
 
 <context:property-placeholder location="classpath:/hibernate.properties" /> 
 
 <bean id="sessionFactory" 
 class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
 <property name="dataSource" ref="dataSource" /> 
 <property name="hibernateProperties"> 
 <props> 
 <prop key="hibernate.dialect">${dataSource.dialect} </prop> 
 <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto} </prop> 
 <prop key="hibernate.hbm2ddl.auto">update </prop> 
 </props> 
 </property> 
 <property name="packagesToScan"> 
 <list> 
 <value> com.mvc.entity </value> <!-- 扫描实体类,也就是平时所说的model --> 
 </list> 
 </property> 
 </bean> 
 
 <bean id="transactionManager" 
 class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
 <property name="sessionFactory" ref="sessionFactory" /> 
 <property name="dataSource" ref="dataSource" /> 
 </bean> 
 
 <bean id="dataSource" 
 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
 <property name="driverClassName" value="${dataSource.driverClassName}" /> 
 <property name="url" value="${dataSource.url}" /> 
 <property name="username" value="${dataSource.username}" /> 
 <property name="password" value="${dataSource.password}" /> 
 </bean> 
 <!-- Dao的实现 --> 
 <bean id="entityDao" class="com.mvc.dao.EntityDaoImpl"> 
 <property name="sessionFactory" ref="sessionFactory" /> 
 </bean> 
 <tx:annotation-driven transaction-manager="transactionManager" /> 
 <tx:annotation-driven mode="aspectj" /> 
 
 <aop:aspectj-autoproxy /> 
 </beans> 

 

hibernate.properties数据库连接配置

dataSource.password=123 
dataSource.username=root 
dataSource.databaseName=test 
dataSource.driverClassName=com.mysql.jdbc.Driver 
dataSource.dialect=org.hibernate.dialect.MySQL5Dialect 
dataSource.serverName=localhost:3306 
dataSource.url=jdbc:mysql://localhost:3306/test 
dataSource.properties=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password} 
dataSource.hbm2ddl.auto=update 

 

配置已经完成,下面开始例子
先在数据库建表,例子用的是mysql数据库

CREATE TABLE `test`.`student` ( 
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
 `name` varchar(45) NOT NULL, 
 `psw` varchar(45) NOT NULL, 
 PRIMARY KEY (`id`) 
) 

 

建好表后,生成实体类

packagecom.mvc.entity; 
 
import java.io.Serializable; 
 
import javax.persistence.Basic; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
 
@Entity 
@Table(name="student") 
public class Student implements Serializable { 
 private static final long serialVersionUID=1L; 
 @Id 
 @Basic(optional=false) 
 @GeneratedValue(strategy=GenerationType.IDENTITY) 
 @Column(name="id", nullable=false) 
 private Integer id; 
 @Column(name="name") 
 private String user; 
 @Column(name="psw") 
 private String psw; 
 public Integer getId() { 
 return id; 
 } 
 public void setId(Integer id) { 
 this.id=id; 
 } 
 
 public String getUser() { 
 return user; 
 } 
 public void setUser(String user) { 
 this.user=user; 
 } 
 public String getPsw() { 
 return psw; 
 } 
 public void setPsw(String psw) { 
 this.psw= psw; 
 } 
} 


Dao层实现

package com.mvc.dao; 
 
 import java.util.List; 
 
 public interface EntityDao { 
 public List<Object> createQuery(final String queryString); 
 public Object save(final Object model); 
 public void update(final Object model); 
 public void delete(final Object model); 
} 

 

package com.mvc.dao; 
 
 import java.util.List; 
 
 import org.hibernate.Query; 
 import org.springframework.orm.hibernate3.HibernateCallback; 
 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 
 
 public class EntityDaoImpl extends HibernateDaoSupport implements EntityDao { 
 public List<Object> createQuery(final String queryString) { 
 return (List<Object>) getHibernateTemplate().execute( 
 new HibernateCallback<Object>() { 
 public Object doInHibernate(org.hibernate.Session session) 
 throws org.hibernate.HibernateException { 
 Query query=session.createQuery(queryString); 
 List<Object> rows=query.list(); 
 return rows; 
 } 
 }); 
 } 
 public Object save(final Object model) { 
 return getHibernateTemplate().execute( 
 new HibernateCallback<Object>() { 
 public Object doInHibernate(org.hibernate.Session session) 
 throws org.hibernate.HibernateException { 
 session.save(model); 
 return null; 
 } 
 }); 
 } 
 public void update(final Object model) { 
 getHibernateTemplate().execute(new HibernateCallback<Object>() { 
 public Object doInHibernate(org.hibernate.Session session) 
 throws org.hibernate.HibernateException { 
 session.update(model); 
 return null; 
 } 
 }); 
 } 
 public void delete(final Object model) { 
 getHibernateTemplate().execute(new HibernateCallback<Object>() { 
 public Object doInHibernate(org.hibernate.Session session) 
 throws org.hibernate.HibernateException { 
 session.delete(model); 
 return null; 
 } 
 }); 
 } 
} 


Dao在applicationContext.xml注入

<bean id="entityDao" class="com.mvc.dao.EntityDaoImpl"> 
 <property name="sessionFactory" ref="sessionFactory" /> 
 </bean> 


 

Dao只有一个类的实现,直接供其它service层调用,如果你想更换为其它的Dao实现,也只需修改这里的配置就行了。
开始写view页面,WEB-INF/view下新建页面student.jsp,WEB-INF/view这路径是在spring-servlet.xml文件配置的,你可以配置成其它,也可以多个路径。student.jsp代码

<% @ page language="java"contentType="text/html;charset=UTF-8" 
 pageEncoding="UTF-8"%> 
 <% @ include file="/include/head.jsp"%> 
 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
 <html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
 <title> 添加 </title> 
 <script language="javascript" src="<%=request.getContextPath()%><!-- 
/script/jquery.min.js">  
// --></script> 
<style><!-- 
table{ border-collapse:collapse; } 
td{ border:1px solid #f00; } 
--></style><style mce_bogus="1">table
         
                           
         

 

student_add.jsp

<% @ page language="java"contentType="text/html;charset=UTF-8" 
 pageEncoding="UTF-8"%> 
 <% @ include file="/include/head.jsp"%> 
 <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
 <html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
 <title> 学生添加 </title> 
 <mce:script type="text/javascript"><!-- 
function turnback(){ 
 window.location.href="<%=request.getContextPath()%>/student.do"; 
} 
// --> </mce:script> 
 </head> 
 <body> 
 <form method="post" action="<%=request.getContextPath()%>/student.do?method=save"> 
 <div><c:out value="${addstate}"></c:out></div> 
 <table> 
 <tr><td> 姓名 </td><td><input id="user" name="user" type="text" /></td></tr> 
 <tr><td> 密码 </td><td><input id="psw" name="psw" type="text" /></td></tr> 
 <tr><td colSpan="2" align="center"><input type="submit" value="提交"/><input type="button" onclick="turnback()" value="返回" /> </td></tr> 
 </table> 
 
 </form> 
 </body> 
 </html> 

 

controller类实现,只需把注解写上,spring就会自动帮你找到相应的bean,相应的注解标记意义,不明白的,可以自己查下@Service,@Controller,@Entity等等的内容。

package com.mvc.controller; 
 
 import java.util.List; 
 
 import javax.servlet.http.HttpServletRequest; 
 import javax.servlet.http.HttpServletResponse; 
 
 import org.apache.commons.logging.Log; 
 import org.apache.commons.logging.LogFactory; 
 import org.springframework.beans.factory.annotation.Autowired; 
 import org.springframework.stereotype.Controller; 
 import org.springframework.ui.ModelMap; 
 import org.springframework.web.bind.annotation.RequestMapping; 
 import org.springframework.web.bind.annotation.RequestMethod; 
 import org.springframework.web.bind.annotation.RequestParam; 
 import org.springframework.web.servlet.ModelAndView; 
 
 import com.mvc.entity.Student; 
 import com.mvc.service.StudentService; 
 
@Controller 
@RequestMapping( " /student.do " ) 
 public class StudentController { 
 protected final transient Log log=LogFactory 
 .getLog(StudentController.class); 
 @Autowired 
 private StudentService studentService; 
 public StudentController(){ 
 
 } 
 
 @RequestMapping 
 public String load(ModelMap modelMap){ 
 List<Object> list=studentService.getStudentList(); 
 modelMap.put("list", list); 
 return "student"; 
 } 
 
 @RequestMapping(params="method=add") 
 public String add(HttpServletRequest request, ModelMap modelMap) throws Exception{ 
 return "student_add"; 
 } 
 
 @RequestMapping(params="method=save") 
 public String save(HttpServletRequest request, ModelMap modelMap){ 
 String user=request.getParameter("user"); 
 String psw=request.getParameter("psw"); 
 Student st=new Student(); 
 st.setUser(user); 
 st.setPsw(psw); 
 try{ 
 studentService.save(st); 
 modelMap.put("addstate", "添加成功"); 
 } 
 catch(Exception e){ 
 log.error(e.getMessage()); 
 modelMap.put("addstate", "添加失败"); 
 } 
 
 return "student_add"; 
 } 
 
 @RequestMapping(params="method=del") 
 public void del(@RequestParam("id") String id, HttpServletResponse response){ 
 try{ 
 Student st=new Student(); 
 st.setId(Integer.valueOf(id)); 
 studentService.delete(st); 
 response.getWriter().print("{\"del\":\"true\"}"); 
 } 
 catch(Exception e){ 
 log.error(e.getMessage()); 
 e.printStackTrace(); 
 } 
 } 
} 

 

service类实现

package com.mvc.service; 
 
 import java.util.List; 
 
 import org.springframework.beans.factory.annotation.Autowired; 
 import org.springframework.stereotype.Service; 
 import org.springframework.transaction.annotation.Transactional; 
 
 import com.mvc.dao.EntityDao; 
 import com.mvc.entity.Student; 
 
@Service 
 public class StudentService { 
 @Autowired 
 private EntityDao entityDao; 
 
 @Transactional 
 public List<Object> getStudentList(){ 
 StringBuffer sff=new StringBuffer(); 
 sff.append("select a from ").append(Student.class.getSimpleName()).append(" a "); 
 List<Object> list=entityDao.createQuery(sff.toString()); 
 return list; 
 } 
 
 public void save(Student st){ 
 entityDao.save(st); 
 } 
 public void delete(Object obj){ 
 entityDao.delete(obj); 
 } 
} 

 

OK,例子写完。有其它业务内容,只需直接新建view,并实现相应comtroller和service就行了,配置和dao层的内容基本不变,也就是每次只需写jsp(view),controller和service调用dao就行了。

怎样,看了这个,spring mvc是不是比ssh实现更方便灵活。


附件源码:s3h 

1
1
分享到:
评论

相关推荐

    SpringMVC demo 完整源码实例下载.zip

    在这个"SpringMVC demo 完整源码实例下载.zip"压缩包中,我们可以深入学习和理解SpringMVC的各种核心特性和实际应用。 首先,SpringMVC通过DispatcherServlet作为前端控制器,它负责接收HTTP请求,并根据请求的URL...

    springmvc注解简单实例

    在这个"springmvc注解简单实例"中,我们将深入探讨Spring MVC中的一些关键注解,以及它们在DAO层、Service层和Controller层中的应用。让我们逐一解析这些层面的注解使用。 首先,我们来到**DAO层**。在Spring MVC中...

    springmvc4简单例子

    在实际开发中,"springmvc4简单例子"可能还会涉及异常处理、国际化、拦截器、文件上传下载、AJAX交互等更多功能。通过学习和实践这样的例子,你可以逐步掌握Spring MVC 4的基本用法和最佳实践。

    springmvc的入门例子

    1. **配置Spring MVC**:在`web.xml`中配置DispatcherServlet,加载Spring MVC的配置文件,如`servlet-context.xml`。 2. **创建Controller**:编写一个简单的Controller类,例如`HelloController`,并使用`@...

    SpringMVC 实例

    在这个实例中,SpringMVC_01 可能包含了实现以上功能的源代码、配置文件以及其他辅助资源。通过对这些文件的分析和实践,你可以更好地理解 SpringMVC 的工作原理,掌握如何利用它来开发动态 Web 应用。 总之,...

    Spring+SpringMVC+Mybatis框架整合例子——亲测可用.zip

    这个压缩包中的"SSM整合例子——亲测可用"应该是包含了上述所有配置和实现的源代码,可以作为学习和参考的模板。通过阅读和理解这个例子,开发者可以快速掌握SSM框架的整合过程,提升自己的Java Web开发能力。

    springmvc +mybatis例子

    Spring MVC 和 MyBatis 是两个在 Java Web 开发中广泛使用的框架。Spring MVC 作为 Spring 框架的一部分,主要用于...这个例子是一个典型的 Java Web 应用开发实例,对于学习和理解这些技术如何协同工作非常有帮助。

    SpringMVC3.1实例源码

    SpringMVC 3.1大力推崇注解驱动,如@Controller、@RequestMapping、@RequestParam等,它们大大简化了代码,减少了XML配置。例如: ```java @Controller public class HelloController { @RequestMapping("/...

    springmvc简单完整例子

    在这个“springmvc简单完整例子”中,我们将深入探讨Spring MVC的核心概念和技术细节。 1. **配置**: - **web.xml**: 这是Web应用程序的部署描述符,用于配置前端控制器`DispatcherServlet`。它将所有HTTP请求...

    SpringMVC 传递 和 返回对象实例 以及 zTree例子

    在SpringMVC中,我们可以通过`@ModelAttribute`注解来接收前端提交的对象实例。当表单提交或者HTTP请求携带的数据与某个Java对象属性匹配时,SpringMVC会尝试将这些数据绑定到对象实例上。例如,一个User对象可能有...

    Ext4+SpringMVC实例Demo源码

    在"Ext4+SpringMVC实例Demo源码"中,我们可以期待看到如何将这两个技术结合,创建一个具有交互性和数据管理功能的Web应用。这个Demo可能包含了以下关键知识点: 1. **Ext4组件使用**:Ext4提供了一系列的UI组件,如...

    SpringMVC+WebSocket实例

    本实例将探讨如何结合SpringMVC和WebSocket来构建一个实时通信系统,并利用HTML5的Notification特性提供用户通知。 首先,我们需要理解SpringMVC的工作原理。SpringMVC是一个模型-视图-控制器(MVC)架构模式的实现...

    SpringMVC+Hibernate 例子 v2.0

    **SpringMVC+Hibernate 整合实践** SpringMVC 和 Hibernate 是两个在 Java Web 开发中广泛应用的...这个例子 "SpringMVC+Hibernate 例子 v2.0" 是一个很好的学习资源,可以帮助开发者理解和掌握这两个框架的集成使用。

    SpringMvc项目配置实例

    1. **使用 @Configuration 注解**:在 Java 类上使用 `@Configuration` 注解来替代 XML 配置,例如创建一个名为 `WebConfig.java` 的类: ```java @Configuration @EnableWebMvc @ComponentScan(basePackages = ...

    SpringMvc自定义拦截器(注解)代码实例

    这通常在配置类中通过@Bean注解完成,如下所示: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Bean public MyInterceptor myInterceptor() { return new MyInterceptor(); ...

    springmvc注解实例

    在这个"springmvc注解实例"中,我们将深入探讨如何在Spring 3.2.9版本中使用注解进行配置和实现功能。这个例子特别强调了纯注解的应用,以及使用Spring内置的JdbcTemplate来处理数据库操作和事务管理。 首先,让...

    springMVC小例子源码

    5. **注解驱动**:SpringMVC允许使用注解来简化配置,如@Service、@Repository、@Autowired等,使得代码更加简洁易懂。 6. **拦截器**:SpringMVC支持自定义拦截器,可以实现登录检查、权限控制等功能。 7. **异常...

    简单springmvc+mybatis例子

    通过这样的配置和代码组织,我们可以构建一个简单的SpringMVC+MyBatis应用,实现学校数据的基本操作。这个例子对于初学者理解这两个框架的集成和使用非常有帮助,同时也展示了如何在实际项目中组织和管理代码。

    spring+springmvc+mybatis 简单实例

    这个"spring+springmvc+mybatis 简单实例"是一个基础教程,旨在帮助初学者理解这三大框架如何协同工作。 首先,Spring是一个全面的后端开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,使得代码更加...

Global site tag (gtag.js) - Google Analytics