`
阅读更多

springMVC、spring与Hibernate结合(具体需要hibernate的jar包还没有测试):

网上的是:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar包

首先在web.xml中设置如下:

  1. <!-- Spring MVC配置 -->  
  2. <!-- ====================================== -->  
  3. <servlet>  
  4.     <servlet-name>spring</servlet-name>  
  5.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  6.     <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml  
  7.     <init-param>  
  8.         <param-name>contextConfigLocation</param-name>  
  9.         <param-value>/WEB-INF/spring-servlet.xml</param-value>  默认  
  10.     </init-param>  
  11.     -->  
  12.     <load-on-startup>1</load-on-startup>  
  13. </servlet>  
  14.   
  15. <servlet-mapping>  
  16.     <servlet-name>spring</servlet-name>  
  17.     <url-pattern>*.do</url-pattern>  
  18. </servlet-mapping>  
  19.  <!-- Spring配置 -->  
  20. <!-- ====================================== -->  
  21. <listener>  
  22.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  23. </listener>  
  24.  <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->  
  25. <context-param>  
  26.     <param-name>contextConfigLocation</param-name>  
  27.     <param-value>classpath:config/applicationContext.xml</param-value>  
  28. </context-param>  
  29.  <!-- 配置字符集 -->
      <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
      OpenSessionViewFilter的主要功能是用来将一个Hibernate Session和一次完整的请求过程相绑定
      -->
      <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>

在spring-servlet.xml中设置如下(这儿不够完整): 

      <!-- 静态资源(js/image)的访问 js在webcontent下-->
         <mvc:resources location="/js/" mapping="/js/**"/>
       <!-- 直接指定视图名,无需自己编写controller -->
         <bean name="/"  class="org.springframework.web.servlet.mvc.ParameterizableViewController">    
                 <property name="viewName" value="login"/>    
         </bean>  

  1. <!-- 启用spring mvc 注解 -->  
  2.     <context:annotation-config />  
  3.   
  4.     <!-- 设置使用注解的类所在的jar包,要扫描的controller所在包-->  
  5.     <context:component-scan base-package="controller"></context:component-scan>  
  6.     
  7.     <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->  
  8.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />  

 在applicationContext.xml中设置如下(这儿不够完整): 

  1.    <!--切面配置,重点说一下环绕切面-->
  2.    <!--切面类-->
    <bean id="beforeAspect" class="com.neusoft.AOPTest"></bean>
    <aop:config>
      <!--声明一个切点,  expression是个表达式-->
        <aop:pointcut id="beforePointCut" expression="execution (* com.neusoft.service.impl.UserserviceImol.queryUserinfo())" />
      <!--将切面与切点关联起来,下面的表明,环绕切面,执行切面类中的around方法 <aop:around表明是一个环绕切面-->
      <!--常见的有<aop:beford <aop:after <aop:around相当于将前两者结合-->
      <aop:aspect ref="beforeAspect">
        <aop:around pointcut-ref="beforePointCut" method="around"/>
      </aop:aspect>
    </aop:config>
    java代码:环绕切面
    public void around(ProceedingJoinPoint joinpoint) { 
             try { 
               System.out.println("oooooooo环绕通知开始oooooooo"); 
               joinpoint.proceed(); 
               System.out.println("oooooooo环绕通知结束oooooooo"); 
             } catch (Throwable t) { 
              System.out.println("Boo!Wewantourmoneyback!"); 
             }  
      ]
  3. 对数据库的配置:可以写到另一个配置文件,在服务器启动的时候加载
  4. <!-- 配置数据源   oracle.jdbc.driver.OracleDriver  com.p6spy.engine.spy.P6SpyDriver-->
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
      <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
      <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
      <property name="username" value="username"></property>
      <property name="password" value="password"></property>
     </bean>
     
     <!-- 配置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.Oracle10gDialect</prop>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
        <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.format_sql">true</prop>
       </props>
      </property>
      <!--通过扫描-->
      <property name="packagesToScan">
       <list>
                <value>com.tgb.entity</value>  
       </list>
      </property>
      <!--指定<property name="annotatedClasses">
       <list>
        <value>com.tgb.entity.User</value>
        <value>com.tgb.entity.Child</value>
        <value>com.tgb.entity.IDCard</value>
        <value>com.tgb.entity.UserKey</value>
        <value>com.tgb.entity.Friend</value>
       </list>
      </property>
  5.    -->
      
     </bean>
     <!-- 配置一个事务管理器 -->
     <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory"/>
     </bean>

这样三个框架基本就结合在了一起,到这里会出现几个配置文件:

 

web.xml-------------------------------------------------每个web项目都有,里面将sping MVC和sping两个框架整合到web项目中

spring-servlet.xml-----------------------------------对springMVC框架的配置

applicationContext.xml-----------------------------对spring框架的配置,这里面整合了hibernate框架,

hibernate.cfg.xml-----------------------------------对hibernate框架的配置。(如果如同上面一样配置了数据库,可以没有)

一些基本的注解:

spingMVC:

 @Controller表示这是控制器。

@RequestMapping(params = "", method=RequestMethod.POST)  表示POST请求

 @ResponseBody 表示放回值不进行视图映射,直接作为响应体中的内容返回,放回json或xml等时会用到

@RequestParam(value="username")在参数前面加,是指请求url地址映射中必须含有的参数(除非属性required=false)  

spring:

 

 @Resource(name = "")放在属性前面一种自动注入方式

 

hibernate:(一个例子)

 @Entity
@Table(name="T_USER")
public class User {

 @Id 
 @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="user_seq")  
 @SequenceGenerator(name="user_seq", sequenceName="user_seq") 
 private Long id;
 
 @Column
 private String userName;
 
 @Column
 private String age;
 
 @OneToOne(mappedBy = "user",cascade = {CascadeType.ALL},fetch = FetchType.LAZY)
 private Child child;
 
 @OneToMany(mappedBy = "user",cascade = CascadeType.ALL,fetch = FetchType.LAZY)//双向关联
    private List<UserKey> userKeyList=new ArrayList<UserKey>();
 
    @ManyToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    @JoinTable(name="t_user_friend",//自定义表??
           joinColumns={@JoinColumn(name="userid")},//自定义列??
           inverseJoinColumns={@JoinColumn(name="friendid")})//反转,和Teacher对应的那个表的列名,
    private List<Friend> friendList=new ArrayList<Friend>();

分享到:
评论

相关推荐

    springmvc学习笔记

    springmvc学习笔记

    SpringIOC+SpringMVC学习笔记

    个人学习spring框架时记录的笔记,纯手敲,SpringIOC+SpringMVC学习笔记,有兴趣的可以参考

    SpringMVC学习笔记.md

    SpringMVC学习笔记.md

    SpringMVC学习笔记.zip

    SpringMVC是Java web开发中一个非常重要的框架,它基于模型-视图-控制器(Model-View-Controller)设计模式...这份“SpringMVC学习笔记”包括了从基础到进阶的全面内容,旨在帮助读者从零开始掌握SpringMVC的各个方面。

    狂神说Java-SpringMVC学习笔记

    狂神说Java——SpringMVC学习笔记 内容概要: 1、了解什么是SpringMVC 2、RestFul和控制器 3、转发和重定向 4、数据处理 5、JSON 6、SSM项目整合 7、Ajax 8、拦截器+文件上传下载 能学到什么:详细了解SpringMVC基础...

    SpringMVC 学习笔记一

    **SpringMVC 学习笔记一** 在Java Web开发领域,SpringMVC是Spring框架的一个重要组成部分,它是一个用于构建Web应用程序的Model-View-Controller(MVC)框架。本学习笔记将深入探讨SpringMVC的基本概念、核心组件...

    SpringMVC学习笔记,学习路线,详细

    SpringMVC 学习笔记涵盖了从基础到高级的多个方面,如源码分析、实例代码、Maven 配置、Web.xml 配置以及注解驱动的编程。对于初学者来说,理解 SpringMVC 的工作流程至关重要。SpringMVC 的工作流程通常始于浏览器...

    springmvc学习笔记.zip

    这个“springmvc学习笔记.zip”文件很可能包含了关于如何理解和使用SpringMVC的详细教程或个人学习记录。以下是一些核心知识点的详细说明: 1. **MVC架构**:MVC是一种设计模式,将应用程序分为三个主要组件:模型...

    SpringMVC学习课堂笔记

    ### SpringMVC学习课堂笔记知识点总结 #### 一、SpringMVC基础知识 ##### 1.1 什么是SpringMVC? SpringMVC是Spring框架的一部分,主要用于构建Web应用程序。它遵循了MVC(Model-View-Controller)设计模式,提供...

    SpringMVC学习笔记与项目源码

    笔记全部以Markdown的形式记录,源码包含一个项目,可以非常便捷的帮助大家上手实践笔记中的知识点学习建议:本笔记为SSM框架一部分,大家可以优先学习Spring等框架,学习完成后在进行SpringMVC的学习系列所有笔记都...

    SpringMVC学习笔记+学习源码.zip

    总的来说,这份"SpringMVC学习笔记+学习源码.zip"资源涵盖了SpringMVC的基本概念、配置、控制器、数据绑定、异常处理、视图解析等多个方面的内容,对于初学者和有一定经验的开发者都是很好的学习资料。通过深入学习...

    mybatis,springmvc学习笔记

    【标题】"mybatis,springmvc学习笔记"涵盖了两个核心的Java Web开发框架:MyBatis和Spring MVC。这两个框架在现代企业级应用中扮演着重要角色,它们各自解决了不同的问题,但通常会结合使用以构建高效、灵活的后端...

    黑马程序员SpringMVC课堂笔记

    《黑马程序员SpringMVC课堂笔记》是一份详细记录了SpringMVC框架学习过程的资料,主要针对Java EE开发者,特别是那些希望通过黑马程序员的教程来提升自己SpringMVC技能的学员。SpringMVC作为Spring框架的重要组成...

    SpringMVC学习笔记(一)

    **SpringMVC学习笔记(一)** 在Java Web开发领域,SpringMVC是Spring框架的一个重要组成部分,用于构建高效、可维护的Web应用程序。本文将深入探讨SpringMVC的基础概念、工作原理及其核心组件,帮助你更好地理解和...

    springmvc学习笔记-springmvc注解开发.zip

    在"springmvc学习笔记--springmvc注解开发.zip"这个压缩包中,我们可以深入探讨Spring MVC的注解驱动开发方式,这是一种简洁且高效的开发模式。 1. **Spring MVC基础**: Spring MVC的核心组件包括...

    SpringMVC学习笔记整合搭建框架

    6、SpringMVC和Struts2的区别 第二天 1、高级参数绑定 a)数组类型的参数绑定 b)List类型的绑定 2、@RequestMapping注解的使用 3、Controller方法返回值 4、SpringMVC中异常处理 5、图片上传处理 6、Json数据交互 7...

    SpringMVC学习笔记一

    SpringMVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的基本概念、...通过不断学习和实践,我们可以掌握SpringMVC的精髓,提升我们的开发技能。

Global site tag (gtag.js) - Google Analytics