`
java_holdIng
  • 浏览: 29991 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ssm框架搭建之sm框架整合

 
阅读更多

之前已经搭建好了ss框架,现在接上sm框架搭整合;

1 需要引入几个依赖jar包:

<!--mybatis的依赖-->
       <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.1.1</version>
        </dependency>
         <!--spring和mybats整合的jar包-->
         <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.1.1</version>
        </dependency>

 

 2 配置XML文件

   1⃣️为了扩展和便于管理,将单独配置操作持久层的文件,一个文件一个数据源  

上图中:spring-dal-mysql就是我的持久层的配置文件了,如果需要加载到这个文件可以在applicationContext.xml文件中引入:<import resource="spring-dal-mysql.xml"></import>即可。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 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-4.0.xsd"
       default-lazy-init="true">

    <!--destroy-method="close":当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.该连接池是tomcat的-->
    <bean id="mysqlDataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <!--还有一些其他属性需要设置。比如最大连接数,连接时间等等 。。。-->
    </bean>

    <!--配置mybatis和spring整合,并自动扫描-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="mysqlDataSource"/>
        <!--typeAliases 是一个类的数组类型,该配置表示扫描这该包下面的-->
        <property name="typeAliasesPackage" value="FirstDemo.dao.domain"/>
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="FirstDemo.dao.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

    <!--配置事务-->
    <bean id="mysqlDataSourceTransManage" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="mysqlDataSource"/>
    </bean>
</beans>

ps:上面红色标示的参数值(${jdbc.username};${jdbc.password})可是有小技巧的哦。因为这个项目是用maven来管理的,所以下面贴上这个地方的一个小配置,在pom.xml文件中加入:
<!--设置加载不同的配置环境-->
    <profiles>
        <profile>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
    </profiles>

    <!--配置可以自动匹配配置文件的信息值-->
    <build>
        <finalName>FistSpringMvcPrj</finalName>
        <!--扫描到到文件到路径,即各个resources中不同后缀文件中的变量的值的配置位置-->
        <filters>
            <filter>src/filters/${env}.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xlsx</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xlsx</include>
                </includes>
                <excludes>
                    <exclude>**/.svn</exclude>
                </excludes>
            </resource>
        </resources>
    </build>

 3 *mapper.xml 文件的配置,本文中叫:UserMapper.xml .但是还需要一个地方需要注意,就是这个 *mapper.xml 中还需要关联好对应的mapper.java文件,“<mapper namespace="FirstDemo.dao.mapper.UserMapper">” 这句话。不然的话会报错的,见报错。

 代码1:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="FirstDemo.dao.mapper.UserMapper">
    <!--1 可以配置映射关系-->
    <!--2 具体的mybatis的sql了,注意这个地方的sql标签的id就是对应的mapper.java文件接口中对应的方法名称-->
</mapper>

报错:

15:05:36.343 [RMI TCP Connection(2)-127.0.0.1] ERROR o.m.spring.mapper.MapperFactoryBean - Error while adding the mapper 'interface FirstDemo.dao.mapper.UserMapper' to configuration.
org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 1; 文件提前结束。
	at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:253) ~[mybatis-3.1.1.jar:3.1.1]

  

 

4 几个坑:

  jar包版本不一致一般会出现的错误,比如说这里的,因为spring-core的版本应该和其他spring的包保持一致,但是我这里没有,而是低了几个版本,一般报这个错基本是两个原因:1⃣️jar版本不对,2⃣️缺少对应jar包了:

  

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:736) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]

 

  没有在*mapper.xml 中配置对应的namespace:

14:42:14.939 [RMI TCP Connection(2)-127.0.0.1] ERROR o.m.spring.mapper.MapperFactoryBean - Error while adding the mapper 'interface FirstDemo.dao.mapper.UserMapper' to configuration.
org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 1; 文件提前结束。

 需要加上上面3中红色部门标记的配置,这个制定的是对应的接口的那个mapper.java文件,一般这两个是放在一个包下面的

 

分享到:
评论

相关推荐

    课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库.zip

    课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于...

    ssm框架快速搭建

    这个教程将帮助新手快速理解并搭建SSM框架,为后续的项目开发打下基础。 **Spring框架**:Spring是核心的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,使得开发者可以更方便地管理...

    SSM框架搭建demo

    这个"SSM框架搭建demo"是为初学者准备的一个实践教程,旨在帮助他们快速理解和掌握如何整合这三大框架,进行实际项目开发。 1. **Spring框架**:Spring是一个全面的Java应用开发框架,核心特性包括依赖注入...

    SSM框架搭建步骤

    里面有SSM框架搭建的全部过程。.....................

    SSM框架搭建学习模板

    这个"SSM框架搭建学习模板"旨在帮助初学者或开发者快速理解和搭建基于这三个框架的应用程序。下面将详细阐述SSM框架的各个组成部分、它们的功能以及如何进行集成和搭建。 1. Spring框架: Spring是Java企业级应用...

    SSM框架搭建视频教程

    SSM框架搭建视频教程,包含Zookeeper实战课程,文件内含百度云下载链接,请自行下载观看,链接失效时可联系邮箱补发,谢谢,赶快下载吧!!

    ssm框架搭建的jar包

    这个“ssm框架搭建的jar包”很可能包含这三个框架的核心库和其他相关依赖,用于快速构建基于Java的Web应用程序。让我们深入探讨一下SSM框架的主要组件及其在项目中的作用。 1. **Spring框架**:Spring是Java企业级...

    SSM框架搭建实例

    这个压缩包文件"ssm_proj"提供了一个基本的SSM框架搭建实例,旨在帮助开发者快速启动一个新的JavaWeb项目。 首先,Spring框架是整个SSM的核心,它提供了依赖注入(Dependency Injection,DI)和面向切面编程...

    ssm框架搭建的demo,非常简洁

    这个"ssm框架搭建的demo"提供了一个简单易懂的示例,帮助开发者快速理解如何将这三个框架整合在一起。在这个压缩包中,尽管没有提及具体的文件内容,我们可以假设它包含了必要的配置文件、源代码以及可能的测试类,...

    ssm框架的搭建那篇博客所用到的jar包等

    SSM框架的搭建通常需要包括Spring、SpringMVC、MyBatis以及它们的依赖库,例如:slf4j、log4j的日志处理库,commons-lang、commons-logging等通用工具库,以及数据库驱动如mysql-connector-java等。 5. **MyBatis ...

    基于Java实现的SSM框架整合实战案例

    基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战...

    使用maven搭建的ssm框架

    通过以上步骤,我们就成功地使用Maven搭建了一个基本的SSM框架项目。当然,实际项目中还需要考虑异常处理、安全控制、国际化、日志管理等多个方面,这些都可以通过引入相应的Spring或第三方库来实现。总的来说,SSM...

    ssm框架的搭建

    ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ...

    Dubbo框架和SSM框架搭建

    Dubbo框架和SSM框架搭建。

    SSM框架简单搭建

    下面我们将详细探讨SSM框架的搭建过程及其核心组件。 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性。在SSM项目中,Spring作为整体架构的容器,管理着...

    ssm框架整合jar包

    SSM框架整合是JavaEE开发中的重要组成部分,它包含了Spring、Spring MVC和MyBatis这三个主流的开源框架。这三个框架的结合,为开发者提供了一种高效、灵活且易于管理的Web应用开发解决方案。 首先,Spring框架是...

    SSM框架搭建

    下面将详细介绍SSM框架的搭建过程以及可能遇到的问题及其解决方案。 **1. 创建项目结构** 一个标准的SSM项目目录结构包括src/main/java(存放Java源代码)、src/main/resources(存放配置文件和静态资源)、src/...

    ssm框架搭建

    这个"ssm框架搭建"的项目显然旨在为初学者提供一个基础的SSM环境,以便他们能够快速上手并进行实践操作。 **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心...

    ssm框架整合redis源码

    在本项目中,"ssm框架整合redis源码"意味着开发者将SSM框架与Redis缓存系统进行了集成,主要目的是实现session共享。Session共享是Web应用中解决用户会话跨服务器问题的关键技术,尤其是在分布式环境下,确保用户...

Global site tag (gtag.js) - Google Analytics