当前位置: 首页 > news >正文

【WEEK4】 【DAY1】整合SSM框架之基本环境搭建—第二部分【中文版】

本部分整合SSM框架之基本环境搭建—第二部分(Spring层、SpringMVC层编写)
2024.3.18 Monday

接上文【WEEK3】 【DAY5】整合SSM框架之基本环境搭建—第一部分【中文版】

目录

  • 7.3.6.Spring层
    • 7.3.6.1.配置Spring整合MyBatis,这里使用的数据源是c3p0连接池
    • 7.3.6.2.编写Spring整合Mybatis的相关的配置文件
      • 新建spring-dao.xml
      • 在选择连接池时可以先在external library中找到对应的类,以便于取出方法名
      • 偶然发现的问题
    • 7.3.6.3.Spring整合service层
    • 7.3.6.4.关联spring-dao.xml和spring-service.xml也可以通过在applicationContext.xml中import文件路径
  • 7.3.7.SpringMVC层
    • 7.3.7.1.添加web支持
    • 7.3.7.2.新建spring-mvc.xml
    • 7.3.7.3.在WEB-INF文件夹下创建jsp文件夹
    • 7.3.7.4.Spring配置整合文件
      • 7.3.7.4.1.可以在applicationContext.xml中填写导入
      • 7.3.7.4.2.也可以直接使用自动配置(详见7.3.6.4)

7.3.6.Spring层

7.3.6.1.配置Spring整合MyBatis,这里使用的数据源是c3p0连接池

7.3.6.2.编写Spring整合Mybatis的相关的配置文件

新建spring-dao.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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.关联数据库配置文件--><context:property-placeholder location="classpath:database.properties"/><!-- 2.数据库连接池 --><!--数据库连接池dbcp 半自动化操作 不能自动连接c3p0 自动化操作(自动的加载配置文件 并且设置到对象里面)druid hikari--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 配置连接池属性 --><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><!-- c3p0连接池的私有属性 --><!--最大连接数和最小连接数--><property name="maxPoolSize" value="30"/><property name="minPoolSize" value="10"/><!-- 关闭连接后不自动commit --><property name="autoCommitOnClose" value="false"/><!-- 获取连接超时时间 --><property name="checkoutTimeout" value="10000"/><!-- 当获取连接失败重试次数 --><property name="acquireRetryAttempts" value="2"/></bean><!-- 3.配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 配置MyBaties全局配置文件(绑定MyBatis配置文件):mybatis-config.xml --><property name="configLocation" value="classpath:MyBatis-config.xml"/></bean><!-- 4.配置扫描(自动完成)Dao接口包,动态实现Dao接口注入到spring容器中 --><!--解释 :https://www.cnblogs.com/jpfss/p/7799806.html--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><!--继承使用sqlSessionFactoryBeanName,私有化注入使用sqlSessionTemplateBeanName--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!--这里value=“...”不是引用,而是通过扫描去找的--><!-- 给出需要扫描Dao接口包 --><!--这个东西是扫描mapper接口 并且给spring代理 如果只有一个SessionFactory 那就可以不用写这个属性--><property name="basePackage" value="P17.dao"/></bean></beans>

在选择连接池时可以先在external library中找到对应的类,以便于取出方法名

在这里插入图片描述
在这里插入图片描述

偶然发现的问题

在这里插入图片描述
解决方式参考:https://blog.csdn.net/m0_50808748/article/details/133185685

7.3.6.3.Spring整合service层

新建spring-service.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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--1.扫描service相关的bean--><context:component-scan base-package="P17.service"/><!--BookServiceImpl注入到IOC容器中--><!--2.将所有业务注入到Spring,可以通过配置或注解实现--><bean id="BookServiceImplement" class="P17.service.BookServiceImplement"><property name="bookMapper" ref="bookDao"/></bean><!--3.配置事务管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--注入数据库连接池--><property name="dataSource" ref="dataSource"/></bean><!--这里用不到:4.aop事务支持--></beans>

7.3.6.4.关联spring-dao.xml和spring-service.xml也可以通过在applicationContext.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="classpath:spring-dao.xml"/><import resource="classpath:spring-service.xml"/></beans>

一般使用以下自动配置方法(在新建xml文件后点击右上角的Configure-Application)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3.7.SpringMVC层

7.3.7.1.添加web支持

(详见1.5操作)
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--DispatcherServlet--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!--一定要注意:这里加载的是总的配置文件,而不是spring-mvc.xml--><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--encodingFilter--><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></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--Session(会话)过期时间--><session-config><session-timeout>15</session-timeout></session-config></web-app>

7.3.7.2.新建spring-mvc.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置SpringMVC --><!-- 1.开启SpringMVC注解驱动 --><mvc:annotation-driven /><!-- 2.静态资源默认servlet配置--><mvc:default-servlet-handler/><!-- 3.配置jsp 显示ViewResolver视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /> <!--这里.jsp之前千万不能加/否则报错  “消息 文.件[/WEB-INF/jsp/allBook/.jsp] 未找到”--></bean><!-- 4.扫描web相关的bean --><context:component-scan base-package="P17.controller" /></beans>

7.3.7.3.在WEB-INF文件夹下创建jsp文件夹

在这里插入图片描述

7.3.7.4.Spring配置整合文件

7.3.7.4.1.可以在applicationContext.xml中填写导入

    <import resource="classpath:spring-mvc.xml"/>

7.3.7.4.2.也可以直接使用自动配置(详见7.3.6.4)

相关文章:

  • 如何实现跨标签页通讯
  • Windows10无盘母盘制作-以云更新为例
  • Request failed with status code 504,Gateway time out
  • Spring Data访问Elasticsearch----CDI集成
  • 测试平台——前端框架
  • Springboot整合Mybatis的详细案例+图解+分析(一)
  • 什么是通用人工智能(AGI)以及为什么它还没有到来:给AI爱好者的现实检查
  • Gradle
  • 【用法总结】Systrace使用基础
  • 隐私计算实训营学习二:隐私计算开源如何助力数据要素流通
  • 【解读】保障软件供应链安全:SBOM推荐实践指南(含指南获取链接)
  • Github Copilot 工具,无需账号,一键激活
  • nodejs社区垃圾分类管理平台的设计与实现python-flask-django-php
  • 20---复位电路设计
  • jmx_prometheus_javaagent-0.19.0.jar+Prometheus+Grafana 监控Tongweb嵌入式(by lqw)
  • android 一些 utils
  • crontab执行失败的多种原因
  • eclipse的离线汉化
  • es6要点
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Python十分钟制作属于你自己的个性logo
  • Spark学习笔记之相关记录
  • SwizzleMethod 黑魔法
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Windows Containers 大冒险: 容器网络
  • 阿里云购买磁盘后挂载
  • 关于使用markdown的方法(引自CSDN教程)
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 普通函数和构造函数的区别
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 深度学习在携程攻略社区的应用
  • 一起参Ember.js讨论、问答社区。
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Linux(权限管理)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)Elastix图像配准:3D图像
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法)求1到1亿间的质数或素数
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)Linq学习笔记
  • **python多态
  • .dwp和.webpart的区别
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core 版本不支持的问题
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET4.0并行计算技术基础(1)
  • .NET程序员迈向卓越的必由之路
  • .net中的Queue和Stack