ssm框架搭建(主讲配置文件):遇到的一些坑及解决方法

目录

mybatis配置

applicationContext.xml (service层注入也配置于此)

sqlMapConfig.xml

springmvc配置

web.xml

springmvc.xml

遇到的一些坑

 


mybatis配置

applicationContext.xml (service层注入也配置于此,mapper.xml文件逆向生产就行)

<!-- 加载数据库配置文件 -->
	<context:property-placeholder location="classpath:db.properties"/>
	
	<!-- 配置数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
          destroy-method="close">
        <property name="driverClass" value="${driver_class}" />
        <property name="jdbcUrl" value="${database_url}" />
        <property name="user" value="${database_username}" />
        <property name="password" value="${database_password}" />
        <property name="maxPoolSize" value="10" />
        <property name="maxIdleTime" value="5" />
    </bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 加载mybatis的配置文件 -->
        <property name="configLocation" value="classpath:sqlMapConfig.xml" />
        <!-- 数据源 -->
        <property name="dataSource" ref="dataSource" />
    </bean>

	
	<!--mapper批量扫描 
          从mapper包中扫描出mapper接口,自动创建代理对象并且在spring容器中注册
          遵循规范:将mapper.java和mapper.xml映射文件名称保持一致,且在一个目录中。
         自动扫描出来的mapper的bean的id为mapper类名(首字母小写)d
     -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 指定扫描的包名
             如果扫描多个包,每个包中间使用半角逗号分隔
          -->
        <property name="basePackage" value="dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
	
	<!-- 扫描service层注入容器 -->
	<context:component-scan base-package="service"></context:component-scan>

sqlMapConfig.xml(修正,测试了一下这个地方如果mapper.xml和mapper.java文件同名且在一个目录内不用再配mapper,否则还是需要配的)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration  
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  
 <configuration>
 	<!-- 可以加一些全局设置和别名,不用再配mapper -->
 	<!-- <mappers>
		<mapper resource="xml/UserMapper.xml"/>
 	</mappers> -->
 </configuration>

springmvc配置

web.xml

spring为父容器(applicationContext.xml,使用监视器加载),springmvc为子容器(springmvc.xml),子容器可使用父容器的bean

<!-- 加载父容器 -->
<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>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
      若不配置,默认加载WEB-INF/servlet名称-servlet(springmvc-servlet.xml)
    -->
    <init-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>WEB-INF/springmvc.xml</param-value>
    </init-param>

</servlet>

<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<!--
    第一种:*.action,访问以.action结尾,由DispatcherServlet进行解析
    第二种:/,所有访问的地址由DispatcherServlet进行解析,对静态文件的解析需要配置不让DispatcherServlet进行解析,
            使用此种方式和实现RESTful风格的url
    第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由DispatcherServlet解析jsp地址,
            不能根据jsp页面找到handler,会报错
    -->
	<url-pattern>/</url-pattern>
</servlet-mapping>

springmvc.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: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-4.0.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<!-- 扫描controller -->
	<context:component-scan base-package="controller"></context:component-scan>
	
	<!-- 注解的映射器 -->
    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> -->

    <!-- 注解的适配器 -->
    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> -->

	<!-- 使用mvc:annotation-driven代替上面两个注解映射器和注解适配的配置-->
	<mvc:annotation-driven></mvc:annotation-driven>
	
	<!-- 配置视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- <property name="prefix" value=""/> -->
		<property name="suffix" value=".jsp"/>
	</bean>
	
	
</beans>

遇到的一些坑

1  web.xml加入监听器就报404错误,经查阅是一些jar版本的问题(ssm相关jar包),实测正确

2  不同版本的jar包对路径的写法好像也有区别,有的前面要加classpath,有的则不用,谜之操作,配置时都试试

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架开发中,可能会遇到以下一些常见的问题,并提供相应的解决方法: 1. 配置问题: - 检查数据库连接配置,确保数据库连接信息正确,并且数据库服务正常运行。 - 检查Spring和MyBatis的配置文件,确保配置正确,并且文件路径正确。 - 如果使用Maven进行依赖管理,检查pom.xml文件,确保相关依赖已经添加并且版本正确。 2. 依赖问题: - 检查相关依赖库的版本是否和SSM框架兼容,可以查看官方文档或者社区中的建议版本。 - 使用工具如Maven或Gradle管理依赖,确保依赖的引入和版本管理正确。 3. 日志问题: - 配置日志框架,如Log4j、Logback等,并设置正确的日志输出级别和输出目标。 - 在代码中使用日志工具打印关键信息,以便定位问题所在。 4. 数据库操作问题: - 检查SQL语句的正确性,可以在数据库客户端中执行SQL语句进行验证。 - 使用MyBatis的动态SQL功能,可以根据条件拼接SQL语句,避免硬编码。 - 检查参数传递是否正确,尤其是数据类型、参数名称等。 5. 事务管理问题: - 在需要进行事务管理的方法上添加`@Transactional`注解,以确保事务正常运行。 - 设置事务的传播特性和隔离级别,根据业务需求进行配置。 6. 性能问题: - 使用数据库索引来优化查询性能,可以通过分析查询执行计划来确定是否需要添加索引。 - 合理使用缓存,如Redis、Ehcache等,减少对数据库的访问频率。 - 对于大量数据处理,可以考虑分页查询、批量操作等方式来优化性能。 以上解决方法仅供参考,具体问题的解决还需根据具体情况进行分析和调试。同时,及时查阅官方文档、社区论坛以及搜索引擎,可以获得更多的解决方案和经验分享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值