欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談SpringMVC+Spring3+Hibernate4開發(fā)環(huán)境搭建

 更新時間:2017年01月03日 14:59:16   作者:shan9liang  
MVC已經(jīng)是現(xiàn)代Web開發(fā)中的一個很重要的部分,本文介紹一下SpringMVC+Spring3+Hibernate4的開發(fā)環(huán)境搭建,有興趣的可以了解一下。

早期的項目比較簡單,多是用JSP 、Servlet + JDBC 直接搞定,后來使用 Struts1(Struts2)+Spring+Hibernate, 嚴格按照分層概念驅(qū)動項目開發(fā),這次又使用 Spring MVC取代Struts來進行開發(fā)。

MVC已經(jīng)是現(xiàn)代Web開發(fā)中的一個很重要的部分,下面介紹一下SpringMVC+Spring3+Hibernate4的開發(fā)環(huán)境搭建

先大致看一下項目結(jié)構(gòu):

 

具體的代碼不再演示,主要是走了一個很平常的路線,mvc-servcie-dao-hibernate的結(jié)構(gòu),源碼可以下載,主要看一下配置文件。解釋見注釋

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>SpringMVC</display-name> 
 <welcome-file-list> 
  <welcome-file>index.jsp</welcome-file> 
 </welcome-file-list> 
  
 <!-- 配置Spring -->  
 <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:config/spring-*.xml</param-value> 
 </context-param> 
  
  
 <listener> 
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
 </listener> 
  
  
 <!-- 配置SpringMVC --> 
 <servlet> 
  <servlet-name>springMVC</servlet-name> 
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  <init-param> 
   <param-name>contextConfigLocation</param-name> 
   <param-value>classpath*:config/spring-servlet.xml</param-value> 
  </init-param> 
  <load-on-startup>1</load-on-startup> 
 </servlet> 
  
 <servlet-mapping> 
  <servlet-name>springMVC</servlet-name> 
  <url-pattern>/</url-pattern> 
 </servlet-mapping> 
  
 <!-- 設(shè)置字符集 --> 
 <filter> 
  <filter-name>encodingFilter</filter-name> 
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
  <init-param> 
   <param-name>encoding</param-name> 
   <param-value>UTF-8</param-value> 
  </init-param> 
  <init-param> 
   <param-name>forceEncoding</param-name> 
   <param-value>true</param-value> 
  </init-param> 
 </filter> 
 <filter-mapping> 
  <filter-name>encodingFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping> 
  
  
 <!-- 控制Session的開關(guān) --> 
 <filter> 
    <filter-name>openSession</filter-name> 
    <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> 
 </filter> 
  
 <filter-mapping> 
  <filter-name>openSession</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping> 
  
</web-app> 

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" 
  xmlns:mvc="http://www.springframework.org/schema/mvc" 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.xsd  
   http://www.springframework.org/schema/mvc  
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
 
  <!-- 注解掃描的包 --> 
  <context:component-scan base-package="com.jialin" /> 
 
  <!-- 開啟注解方案1 --> 
  <!-- 注解方法處理 --> 
  <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"  
    /> --> 
  <!-- 注解類映射處理 --> 
  <!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> --> 
 
  <!-- 開啟注解方案2 --> 
  <mvc:annotation-driven /> 
 
  <!-- 靜態(tài)資源訪問,方案1 --> 
  <mvc:resources location="/img/" mapping="/img/**" /> 
  <mvc:resources location="/js/" mapping="/js/**" /> 
 
  <!-- 靜態(tài)資源訪問,方案2 --> 
  <!-- <mvc:default-servlet-handler/> --> 
 
  <!-- 視圖解釋類 --> 
  <bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/"></property> 
    <!--可為空,方便實現(xiàn)自已的依據(jù)擴展名來選擇視圖解釋類的邏輯 --> 
    <property name="suffix" value=".jsp"></property> 
  </bean> 
 
  <!-- 上傳文件bean --> 
  <!-- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize"  
    value="10485760000" /> <property name="maxInMemorySize" value="40960" />  
    </bean> --> 
 
</beans>  

spring-hibernate.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" 
  xmlns:mvc="http://www.springframework.org/schema/mvc" 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.xsd  
   http://www.springframework.org/schema/mvc  
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
   
  <!-- 配置數(shù)據(jù)源 --> 
  <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://127.0.0.1/springmvc" /> 
    <property name="username" value="root" /> 
    <property name="password" value="123456" /> 
  </bean> 
 
  <!-- 配置hibernate SessionFactory--> 
  <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="hibernateProperties"> 
      <props> 
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
        <prop key="hibernate.hbm2ddl.auto">update</prop> 
        <prop key="hibernate.show_sql">true</prop> 
        <prop key="hiberante.format_sql">true</prop> 
      </props> 
    </property> 
    <property name="configLocations"> 
      <list> 
        <value> 
          classpath*:config/hibernate/hibernate.cfg.xml 
        </value> 
      </list> 
    </property> 
  </bean> 
 
  <!-- 事務(wù)管理器 --> 
  <bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
  </bean> 
   
  <!-- 事務(wù)代理類 --> 
  <bean id="transactionBese" 
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" 
    lazy-init="true" abstract="true"> 
    <property name="transactionManager" ref="transactionManager"></property> 
    <property name="transactionAttributes"> 
      <props> 
        <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="del*">PROPAGATION_REQUIRED,-Exception</prop> 
        <prop key="get*">PROPAGATION_NEVER</prop> 
      </props> 
    </property> 
  </bean> 
 
</beans>  

spring-core.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"  
 xmlns:context="http://www.springframework.org/schema/context"  
 xmlns:p="http://www.springframework.org/schema/p"  
 xmlns:mvc="http://www.springframework.org/schema/mvc"  
 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.xsd  
   http://www.springframework.org/schema/mvc  
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
    
  <!-- 引入其他配置文件,可以為多個 --> 
  <import resource="classpath*:config/spring/spring-user.xml"/> 
   
 </beans>  

spring-user.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [ 
<!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml"> 
]> 
 
<beans> 
  <!-- Spring Bean --> 
  <bean id="userDao" class="com.jialin.dao.UserDao"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
  </bean> 
   
  <bean id="userManagerBase" class="com.jialin.service.UserManager"> 
    <property name="userDao" ref="userDao"></property> 
  </bean> 
   
  <!-- parent為transactionBese,表示支持事務(wù) --> 
  <bean id="userManager" parent="transactionBese"> 
    <property name="target" ref="userManagerBase"></property> 
  </bean> 
   
</beans> 

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
 
<hibernate-configuration> 
  <session-factory> 
    <!-- 引入需要映射的類 --> 
    <mapping class="com.jialin.entity.User"/> 
  </session-factory> 
</hibernate-configuration> 

下面再來看看Controller

package com.jialin.controller; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.List; 
 
import javax.annotation.Resource; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
 
import com.jialin.entity.User; 
import com.jialin.service.IUserManager; 
 
@Controller  //類似Struts的Action 
@RequestMapping("/user")  
public class UserController { 
   
  @Resource(name="userManager") // 獲取spring配置文件中bean的id為userManager的,并注入 
  private IUserManager userManager; 
   
  @RequestMapping("/addUser")  // 請求url地址映射,類似Struts的action-mapping 
  public String addUser(User user){ 
    if(userManager.addUser(user)) 
    { 
      // 重定向 
      return "redirect:/user/getAllUser"; 
    }else 
    { 
      return "/fail"; 
    } 
     
  } 
   
  @RequestMapping("/updateUser") 
  public String updateUser(User user,HttpServletRequest request){ 
    if (userManager.updateUser(user)) 
    { 
      user = userManager.getOneUser(user); 
      request.setAttribute("user", user); 
      return "/UserEdit"; 
    }else 
    { 
      return "/fail"; 
    } 
     
  } 
   
  @RequestMapping("/delUser") 
  public void delUser(User user,HttpServletResponse response){ 
    String result = "{\"result\":\"error\"}"; 
     
    if(userManager.delUser(user)){ 
      result = "{\"result\":\"success\"}"; 
    } 
    PrintWriter out = null; 
    response.setContentType("application/json"); 
     
    try { 
      out = response.getWriter(); 
      out.write(result); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
 
  } 
  @RequestMapping("/toAddUser") 
  public String toAddUser(){ 
    return "/UserAdd"; 
  } 
   
  @RequestMapping("/toUpdateUser") 
  public String toUpdateUser(User user,HttpServletRequest request){ 
    User user1=userManager.getOneUser(user); 
     
    request.setAttribute("user1", user1); 
     
    return "/UserEdit"; 
  } 
   
  @RequestMapping("/getAllUser") 
  public String getAllUser(HttpServletRequest request){ 
     
    List userList=userManager.getAllUser(); 
     
    request.setAttribute("userlist", userList); 
     
    return "/UserMain"; 
  } 
   
} 

源碼下載……

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud中的Consul詳解

    SpringCloud中的Consul詳解

    這篇文章主要介紹了SpringCloud中的Consul知識,本文使用的是docker-compose方式管理consul服務(wù),直接啟動即可,需要的朋友可以參考下
    2022-03-03
  • Java正則表達式驗證固定電話號碼符合性

    Java正則表達式驗證固定電話號碼符合性

    這篇文章主要介紹了Java正則表達式驗證固定電話號碼符合性的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • JavaWeb學(xué)習(xí)過程之MVC查詢模式詳解

    JavaWeb學(xué)習(xí)過程之MVC查詢模式詳解

    這篇文章主要介紹了JavaWeb學(xué)習(xí)過程之MVC查詢模式詳解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • 淺談緩沖字符流 BufferedReader BufferedWriter用法

    淺談緩沖字符流 BufferedReader BufferedWriter用法

    這篇文章主要介紹了緩沖字符流 BufferedReader BufferedWriter的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 教你實現(xiàn)Java接口防刷

    教你實現(xiàn)Java接口防刷

    有些人會惡意提交,本文主要介紹了教你實現(xiàn)Java接口防刷,通過在一定時間內(nèi)限制同一用戶對同一個接口的請求次數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • RPC框架之Thrift的入門教程

    RPC框架之Thrift的入門教程

    Thrift是一個跨語言的服務(wù)部署框架,主要用于各個服務(wù)之間的RPC通信,支持跨語言,下面小編就來和大家講講Thrift框架的具體使用,希望對大家有所幫助
    2023-10-10
  • 基于Scala和Java方法的相互調(diào)用

    基于Scala和Java方法的相互調(diào)用

    這篇文章主要介紹了Scala和Java方法的相互調(diào)用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java同步開篇入門簡單介紹

    java同步開篇入門簡單介紹

    java中的CountDownLatch、Semaphore、CyclicBarrier這些類又不屬于鎖,它們和鎖又有很多共同點,都是為了協(xié)同多線程的執(zhí)行,都是一種同步器,所以這里就借用同步來取名字了,也就是“同步系列”的來源。下面小編來簡單介紹下
    2019-05-05
  • Java中mybatis的三種分頁方式

    Java中mybatis的三種分頁方式

    這篇文章主要介紹了Java中mybatis的三種分頁方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • java利用Ant腳本生成war包全過程

    java利用Ant腳本生成war包全過程

    這篇文章主要為大家詳細介紹了java利用Ant腳本生成war包全過程,感興趣的朋友可以參考一下
    2016-03-03

最新評論