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

在Maven中整合Spring MVC与Hibernate笔记

阅读更多
第一次发帖:请大家见谅。

在Maven环境下搭建SpringMVC,比较快速,直接在项目上右击找到MyEclipse然后选择Add Spring Capabilities就好了,但是在整合Hibernate时,使用同样的方法添加Hibernate Capabilities时就会出现jar包的冲突,缺少等各种问题。最后选择自己挨个添加jar包的方法。进行整合。虽然也出现了jar包缺少等问题。但是相对来说,Maven中自动添加的jar少,在排除问题时就比较容易了。
环境介绍:
     MyEclipse10.0、Spring 3.0.5.RELEASE、Hibernate3.6.6。
jar包截图:[img]

[/img]
     目录结构:[img]

[/img]  
简短介绍:
     在浏览器地址栏输入:localhost/login。然后会进入controller目录下的Welcome 中。Welcome中实现了ItemService的注入,ItemService实现了ItemDao的注入。ItemDao实现了和持久层对象Item的绑定。在每一层都输出了一句话。最后实验,web程序可以正常运行。
第一一步:pom.xml
     <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion >4.0.0 </modelVersion>
  <groupId >com.hello.login </groupId>
  <artifactId >login- maven</ artifactId>
  <packaging >war </packaging>
  <version >0.0.1-SNAPSHOT </version>
  <name >login- maven Maven Webapp</name >
  <url >http://maven.apache.org </url>
  <dependencies >
    <dependency >
      <groupId >junit</groupId>
      <artifactId >junit</artifactId>
      <version >3.8.1 </version>
      <scope >test </scope>
    </dependency >   //这个是测试
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring-beans </artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency >
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring-context </artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency >
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring- webmvc</ artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency >
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring- tx</ artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency >
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring- jdbc</ artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency >
    <dependency >
     <groupId >org.springframework </groupId>
     <artifactId >spring- orm</ artifactId>
     <version >3.0.5.RELEASE </version>
    </dependency > //全是Spring的包
    <dependency >
           <groupId> log4j</ groupId>
           <artifactId> log4j</ artifactId>
           <version> 1.2.14</ version>
     </dependency >//Spring对这个jar包有依赖
     <dependency >
           <groupId> org.json</ groupId>
           <artifactId> json</artifactId >
           <version> 20090211</ version>
     </dependency > <dependency >
           <groupId> net.sf.json-lib </groupId>
           <artifactId> json-lib</artifactId>
           <version> 2.4</ version>
           <classifier> jdk15</ classifier>
     </dependency > <dependency >
               <groupId> org.hibernate</groupId >
               <artifactId> hibernate-core </artifactId>
               <version> 3.6.6.Final</version >
     </dependency> <dependency >
           <groupId> org.hibernate</groupId >
           <artifactId> hibernate-commons-annotations </artifactId>
           <version> 3.2.0.Final</version >
           <exclusions>
               <exclusion>
                    <groupId> org.slf4j</groupId >
                    <artifactId> slf4j-api</artifactId >
               </exclusion>
           </exclusions>
     </dependency > <dependency >
           <groupId> org.slf4j</groupId >
           <artifactId> slf4j-log4j12</artifactId >
           <version> 1.6.1</ version>
     </dependency >  <dependency >
           <groupId> org.hibernate</groupId >
           <artifactId> shards</artifactId >
           <version> 3.0.0B2</ version>
     </dependency >  <dependency >
           <groupId> org.javassist</groupId >
           <artifactId> javassist</artifactId >
           <version> 3.16.1-GA</version >
     </dependency >
  </dependencies >
  <build >
    <finalName >login- maven</ finalName>
    <plugins >
     <plugin >
           <groupId> org.mortbay.jetty</groupId >//这个是对该web应用添加jetty插件,经过一些配置之后,该web应用就可以在jetty中运行了。
           <artifactId> maven-jetty-plugin</artifactId >
           <version> 6.1.26</ version>
           <configuration>
            <webAppConfig>
                 <defaultsDescriptor> src/main/resources/webdefault.xml </defaultsDescriptor>
            </webAppConfig>     //这个好像是jetty的标配,等着学习jetty相关的知识时注意下:Jetty根据webdefault.xml文件中的内容配置web应用的诸如JSP,默认的Servlet和Invoker.
            <contextPath> /</ contextPath>
          <connectors>
                 <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector" >
                       <port> 80</ port>   //这个就是配置jetty的端口了
                  </connector>
           </connectors>
          <scanIntervalSeconds> 0</ scanIntervalSeconds>  //配置这个貌似是让jetty隔一段时间自动的去扫描后面目录下的class文件。这样我们就可以不同经常停止服务器了。0是不扫描。
           <scanTargetPatterns>
                 <scanTargetPattern>
                 <directory> src/main/webapp</directory>
                 <includes>
                      <include> **/*.xml</include >
                       <include> **/*.properties</include >
                 </includes>
                </scanTargetPattern> //这个配置比较主要就是配置我们的扫描目录的。这个就是配置的我们的web应用的目录。
           </scanTargetPatterns>
          <systemProperties>
                <systemProperty>
                      <name> javax.xml.parsers.DocumentBuilderFactory </name>
                     <value> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl  </value>
                </systemProperty>
                <systemProperty>
                     <name> javax.xml.parsers.SAXParserFactory </name>
                     <value> com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl </value>
                 </systemProperty>
                <systemProperty>
                      <name> javax.xml.transform.TransformerFactory </name>
                     <value> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl </value>
                </systemProperty>
                <systemProperty>
                    <name> org.eclipse.jetty.util.URI.charset</name >
                     <value> UTF-8</ value>
                </systemProperty>
         </systemProperties>   </configuration>  </plugin>  </plugins >  </build > </project>


webdefault.xml就不贴了,网上有好多。然后就是web.xml
<?xml version= "1.0" encoding ="UTF-8"?>
<web-app xmlns= "http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version= "2.4">
  <display-name >Archetype Created Web Application</display-name>
  <welcome-file-list >
     <welcome-file >index.jsp </welcome-file>
  </welcome-file-list >  欢迎页
  <context-param >
           <param-name> log4jConfigLocation</param-name >
           <param-value> classpath:/log4j-debug.xml </param-value>
     </context-param >  log4j-debug.xml是log4j的配置文件,貌似是必需品。网上有好多,就不贴出来了
     <listener >
           <listener-class> org.springframework.web.util.Log4jConfigListener</listener-class >
     </listener > log4j:的配置文件和监听器,这个是spring 中需要的一个监听器,这个监听器要放在Spring监听器的前面。web.xml的启动顺序:context-param--->listener--->filter--->servlet;同级的话就是按照在配置文件中的配置顺序。
  <context-param >
     <param-name >contextConfigLocation </param-name>
     <param-value >classpath*:applicationContext.xml</param-value >
     </context-param > applicationContext这个是Spring的配置文件,这个里面记录着对hibernate的整合。
  <listener >
       < listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
  </listener >  Spring的启动监听器,要整合Hibernate就要配置这个。
  <servlet >
     <servlet-name >dispatcher </servlet-name>
       < servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class>
     <load-on-startup >1 </load-on-startup>
  </servlet >
  <servlet-mapping >
     <servlet-name >dispatcher </servlet-name>
     <url-pattern >/ </url-pattern>
  </servlet-mapping >   这个就是我们SpringDispatcher的核心了。注意:<url-pattern>写的是/不是/*这是有原因的,具体看剪藏
</web-app>

applicationContext.xml

<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
      xmlns:aop="http://www.springframework.org/schema/aop"  xmlns:util="http://www.springframework.org/schema/util"  xmlns:jee="http://www.springframework.org/schema/jee"  xmlns:tx= "http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
           <property name= "locations">
               <list>
                    <value> classpath:system.properties</value >
               </list>
           </property>
     </bean >  这个就是一读取外部文件的方式配置数据库了。
     <!--扫描service、dao层的注解并使之成为bean  -->
     <context:component-scan base-package= "com.hello" >
           <context:exclude-filter type= "annotation" expression="org.springframework.stereotype.Controller" />
     </context:component-scan >
          这个是读取注解的,很重要。开始时没有配置这个总是报错说找不到要注入的bean,最后比对了一个成功的项目才发现这个。采用注解的方式必须要配置这个。我们可以利用exclude-filter和include-filter来区分要扫面的bean。exclude是要排除的注解bean。include是要包含的注解bean

     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
           destroy-method="close" >     
           <property name= "driverClassName" value="${jdbc.driver}" />    
           <property name= "url" value ="${jdbc.url}" />    
     <property name="username" value= "${jdbc.username}" />    
     <property name="password" value= "${jdbc.password}" />
     <property name="timeBetweenEvictionRunsMillis" value="1800000" />
     <property name="minEvictableIdleTimeMillis" value="1800000" />
     </bean >
          数据库的配置bean
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >
           <property name= "dataSource" ref ="dataSource" />
           <property name= "schemaUpdate" value ="true" />
           <property name= "packagesToScan">
               <list>
                    <value> com.hello.domain</value ><!-- 采用注解法实现实体与数据库的链接 -->
               </list>
           </property>   实体类我们采用的是注解的方式,这个扫描并成为实体类的目录。我们也可以直接指定实体类。
           <property name= "hibernateProperties">
               <props>
                    <prop key="hibernate.show_sql" >false </prop>
                    <prop key="hibernate.format_sql" >false </prop>
                    <prop key="hibernate.dialect" >org.hibernate.dialect.MySQL5Dialect </prop>
               </props>
           </property>
     </bean >
</beans> 这是sessionFactory Bean,Session是操作hibernate的入口类(门面模式)。这个是Hibernate与Spring整合的关键设置。

dispatch-servlet.xml就是最基本的配置。
  • 大小: 99.8 KB
  • 大小: 27 KB
分享到:
评论

相关推荐

    maven项目管理工具:springmvc和hibernate整合web项目

    在文档"monitor_NOTE.docx"中,可能包含了监控Spring MVC和Hibernate整合项目性能或状态的相关笔记,例如日志配置、性能指标监控、数据库连接池的配置等。这些内容有助于优化项目运行,确保系统稳定高效。 总的来说...

    SSH笔记-Spring整合Hibernate

    在本笔记中,我们将重点讨论如何将Spring与Hibernate进行整合,以实现数据访问层的便捷管理。 Spring是一个全面的后端开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,有助于简化应用的复杂性。而...

    SSH笔记-整合Spring2、Struts2、Hibernate4

    7. **整合Hibernate和Spring**:通过SessionFactoryBean在Spring中创建SessionFactory,配置数据源,使用HibernateTemplate或JPA进行数据访问。 8. **测试**:编写测试用例,确保各个组件能正常工作,如Action、...

    spring+hibernate+struts2 +mybatis整合笔记

    本篇笔记主要介绍如何将Spring、Hibernate、Struts2与MyBatis进行整合,形成一个完整的Web应用开发框架。 #### 二、环境搭建与准备工作 1. **安装JDK**:确保系统中已经安装了JDK,并配置好环境变量。 2. **下载所...

    spring学习笔记

    7. **Part 7: Create Spring 3 MVC Hibernate 3 Example using Maven in Eclipse** - 最后,将介绍如何结合Spring MVC和Hibernate来实现数据库操作,以及如何在Eclipse中使用Maven进行项目构建。 Spring MVC的请求...

    Spring Boot核心技术-笔记-pdf版.pdf

    **Spring Boot核心技术详解** Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的...希望这份学习笔记能帮助你深入理解和掌握Spring Boot的精髓,祝你在Spring Boot的学习之路上一帆风顺!

    java Web云笔记项目

    这个项目可能是你在培训机构学习时的一个实践项目,旨在帮助你掌握Java Web开发的基本技能,特别是Spring MVC框架与数据库的结合应用。 **Spring MVC框架** Spring MVC是Spring框架的一部分,专门用于构建Web应用...

    Spring2.5、3.0、3.1轻松入门+中级+高级教程14合一

    - **Spring+hibernate+struts2整合文档**: 这个文档会讨论如何将Spring与Hibernate ORM框架和Struts2 MVC框架整合,创建一个完整的MVC应用。 - **Spring教程.docx**: 这是一份综合性的Spring教程,可能涵盖了从基础...

    ssm整合步骤笔记,迅速搭建ssm可执行项目

    SSM整合步骤笔记主要涉及Java EE开发中常用的Spring、SpringMVC和MyBatis三大框架的整合过程。SSM框架是当前Web开发中非常流行的一种后端技术栈,其目的在于构建高效、解耦的项目结构。在本知识点中,我们将详细介绍...

    Eclipse整合SSH框架笔记(附例子)

    本笔记将深入讲解如何在Eclipse环境中整合这三个框架,并通过一个可运行的例子来实践整个过程。 **Spring框架**:Spring是Java开发的核心框架,它通过依赖注入(DI)和面向切面编程(AOP)简化了应用程序的开发。在...

    Spring学习+IDEA.docx

    - **Web**:Spring MVC是Spring提供的用于构建Web应用的模块,它整合了HTTP请求处理、视图解析等功能。 3. **创建Spring工程** - 使用IntelliJ IDEA(IDEA)创建一个名为`myspring`的Empty Project。 - 添加一个...

    springmvc笔记.doc

    Spring MVC 提供了一个灵活的架构,使得开发人员可以方便地与各种视图技术(如 JSP、Thymeleaf)以及数据绑定和验证框架(如 Hibernate、MyBatis)进行集成。 **一、Spring MVC 概述** 1. **核心组件**:Spring MVC...

    Spring学习笔记

    在下载和安装Spring方面,您可以访问Spring的官方网站或者其Maven仓库,选择适合您项目的版本进行下载。安装时需要将下载的JAR包添加到项目的类路径中。Spring支持多种类型的依赖注入容器,包括基于XML配置的容器和...

    spring自己使用

    标题“spring自己使用”指的是对Spring框架的个人实践与学习,这通常涉及到Spring的核心概念、配置、以及在实际开发中的应用。Spring是一个广泛使用的Java企业级应用开发框架,以其依赖注入(Dependency Injection,...

    spring笔记

    ### Spring框架核心概念详解 #### 一、Spring框架概述 Spring框架是一个开源的Java平台,主要专注于...此练习不仅帮助理解和掌握了Spring框架的核心概念,还能进一步熟悉Spring与Hibernate的整合流程及具体实现细节。

    Spring學習筆記DEMO代碼(四)

    在Spring与Hibernate的集成中,Spring可以作为数据访问层的容器,管理Hibernate SessionFactory和Session的生命周期,从而避免了手动管理事务的复杂性。而与Struts2的集成则可能涉及到Spring的Web MVC框架,用于处理...

    基于SSM的在线学习系统源码.zip

    4. **SSH框架**:SSH(Struts2、Spring、Hibernate)是另一种常见的Java Web开发框架,但在这个项目中并未使用Struts2,而是选择了Spring MVC。SSH中的Struts2是一个基于MVC设计模式的Web应用框架,它与Spring MVC...

    s2sh 个人学习笔记

    虽然描述部分为空,但根据标题我们可以推测,博主在个人学习过程中记录了关于如何整合和使用这三个组件的细节,可能包括配置、功能实现、问题解决等方面的笔记。此外,通过博文链接可以访问到更详细的学习心得和经验...

    SSH经典笔记陈欢版

    SSH经典笔记陈欢版是针对Java Web开发领域中三大框架——Spring、Struts和Hibernate的综合学习资料。这些框架在21世纪初被广泛采用,构建了许多企业级应用,至今仍具有重要的参考价值。SSH框架组合是Java开发中的...

    CRUD-Spring-Hibernate:示例 POC 以 Hibernate 作为 ORM 接触 Spring 的端到端流程

    Java + Spring MVC + Hibernate + Spring Security 已实施以下概念 Spring Security 使用默认 Spring 登录 员工模块的 CRUD。 ORM - Hibernate mysql数据库。 笔记 SQL 文件保存在 sql 文件夹下。 战争在目标...

Global site tag (gtag.js) - Google Analytics