idea springmvc项目搭建_ssm框架整合搭建流程 - 小白小承

刚学完Mybatis,Spring,SpringMVC

尝试进行一个整合开发,记录一下搭建流程

1.环境与开发工具

IDEA

MySQL 8.0.16

Tomcat 9.0.21

Maven 3.6.1

2.项目准备

1.创建一个maven工程

3b73a0937b58feb04adc5c37d5987dfe.png

 2.依赖注入

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.8.RELEASE</version></dependency></dependencies>

3.配置静态资源导出

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

4.连接数据库

77f5635770399250106ff1c93af1c8c1.png

 这里可能连接失败报错[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.

是因为系统默认的时区与IDEA连接数据库的时区 (MySQL默认时区为UTC) 不一致

按照格林威治的时间,我们属于东八区时间,领先UTC八个小时,所以说存在8小时的时差,需要修改

MySQL 8.0以上才存在此问题,如使用的是MySQL 5.7可以忽略

3.编写配置文件

1.applicationContext.xml

<?xml version="" encoding="UTF-8" ?><beans xmlns=""xmlns:xsi=""xsi:schemaLocation="/spring-beans.xsd"><import resource="classpath:"/><import resource="classpath:"/><import resource="classpath:"/></beans>

2.

<?xml version="" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"""><configuration><typeAliases><package name=""/></typeAliases><mappers><mapper class=""/></mappers></configuration>

3.

4.编写Mybatis层

1.与数据表对应的简单实体类(pojo)

2.与各实体类对应的Mapper接口(dao)

3.各接口的实现类(service)

整合dao层

1.关联数据库配置文件()

<context:property-placeholder location="classpath:"/>

2.连接池

<bean id="dataSource" class=""><property name="driver" value="${}"/><property name="url" value="${}"/><property name="username" value="${}"/><property name="password" value="${}"/></bean>

这里使用的是Druid,也可以使用c3p0、dbcp等

3.sqlSessionFactory

<bean id="sqlSessionFactory" class=""><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:"/></bean>

4.配置dao接口扫描包,动态实现dao接口注入到Spring容器

<bean class=""><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><property name="basePackage" value=""/></bean>

整合Service层

1.扫描service下的包

<context:component-scan base-package=""/>

2.将业务类注入Spring(可注解实现)

3.声明式事务配置

<bean id="transactionManager" class=""><property name="dataSource" ref="dataSource"/></bean>

7.整合SpringMVC

 1.给maven项目增加web支持

320ca301b42c143460447b5b45da5c1f.png

 2.在配置DispathcherServlet

<servlet><servlet-name>spring-mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring-mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

3.配置乱码过滤

<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>

注意:/和/*的区别,前者不会扫描.jsp文件,后者会。所以过滤器这里需要写/*,而DispathcherServlet核心分发器是/。

4.设置session过期时间

<session-config><session-timeout>15</session-timeout></session-config>

5.配置(处理器映射器、处理器适配器、视图解析器)

其中,处理器映射器和处理器适配器在使用了注解驱动的情况下可以省略

<!--注解驱动--><mvc:annotation-driven/><!--静态资源过滤--><mvc:default-servlet-handler/><!--扫描controller--><context:component-scan base-package=""/><!--视图解析器--><bean class=""><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

21世纪科技生态面临第三次全球标准

来源&#xff1a;中国社会科学报 前言&#xff1a;本文2020年9月29日发表与“中国社会科学报”&#xff0c;原文标题"科技生态面临新全球标准”&#xff08;略有修改&#xff09;。2007年以来&#xff0c;我们对21世纪前沿科技生态发展的规律进行研究。提出互联网从网状…

adb push ,adb pull和adb install的区别

1、用命令行把手机上的文件拷贝到电脑上 1adb pull sdcard/1222073679.png拷贝文件夹命令&#xff0c;如把log文件夹拷贝到电脑当前目录 1adb pull sdcard/log/拷贝文件夹到当前文件夹下的某文件夹里面&#xff0c;如拷贝360文件夹到当前文件夹的360里面 1adb pull sdcard/360/…

php+jquery实现图片上传预览_和拖动位置值,PHP教程:thinkphp jquery实现图片上传和预览效果...

《PHP教程&#xff1a;thinkphp jquery实现图片上传和预览效果》要点&#xff1a;本文介绍了PHP教程&#xff1a;thinkphp jquery实现图片上传和预览效果&#xff0c;希望对您有用。如果有疑问&#xff0c;可以联系我们。PHP学习PHP学习那个file按钮样式先忽略PHP学习点击选择图…

屏幕中间显示已停用缩放_有关标签打印软件缩放工具的介绍

在标签打印软件中设计标签时&#xff0c;为了方便编辑&#xff0c;有时会根据自己的需求放大缩小标签来精确位置大小等&#xff0c;做更细致的调整&#xff0c;这时就会用到缩放工具。下面&#xff0c;主要就是给大家介绍标签打印软件缩放工具的用处&#xff1a;在标签打印软件…

机器学习揭示了人类大脑的新见解

来源&#xff1a;科学杂志由新加坡国立大学(NUS)科学家领导的跨学科研究团队已成功地利用机器学习来发现对人脑细胞结构的新见解。该团队展示了一种使用从功能磁共振成像(fMRI)收集的数据自动估算大脑参数的方法&#xff0c;使神经科学家无需使用手术手段即可探测大脑&#xff…

dram和nand哪个难生产_仅300名员工,年产7台,订单排到5年后,比光刻机还难买...

如今半导体行业发展成为如今一大热议话题&#xff0c;如今不管在哪个行业几乎都要用到芯片&#xff0c;在以前可能手机行业对于芯片的需求量更高一些&#xff0c;然而近些年来不同领域的厂商都争相开始发展智能机&#xff0c;而这其中就离不开芯片技术&#xff0c;华为的麒麟芯…

bitset与取数凑数类问题

bitset是C中的一个东西&#xff0c;定义在头文件#include<bitset>里 所以可以使用#include<bitset>解决取数类的问题https://www.nowcoder.com/acm/contest/1/D 转载于:https://www.cnblogs.com/MekakuCityActor/p/8513734.html

人工智能的发展与障碍 | 麦肯锡

转自 | 软件定义世界受访者表示&#xff0c;人工智能正在迅速普及&#xff0c;但预计不会大规模减少企业用工人数。目前&#xff0c;仅有极少数企业具备让人工智能创造规模化价值的基本要素。麦肯锡一项以人工智能为主题的最新全球调研【1】 显示&#xff0c;人工智能正在全球商…

管理系统 c++图形界面_锁螺母ERP系统,一站式各国语言管理系统

锁螺母ERP系统鼎立软件企业正式启用ERP系统后&#xff0c;这种破坏将直接造成业务交易的中断&#xff0c;给企业带来不可估量的损失。出库商品遵循先进先出原则&#xff0c;减少商品过期带来的损耗。 锁螺母ERP系统&#xff0c;一站式各国语言管理系统正在企业中&#xff0c;一…

Go语言入门——Go语言环境搭建

下载Go语言包 go binary release是一套 二进制源码SDK工具组成的&#xff0c;和其他语言比&#xff0c;唯独没有运行时&#xff0c;也不需要。Go官方国内访问不稳定&#xff0c;最好FQ。请到https://golang.org/dl/ 下载对应的包&#xff0c;目前是1.9.3版本 三个环境变量 首先…

图文详解并联机器人,你了解吗?

文章来源&#xff1a;世界先进制造技术论坛内容来源&#xff1a;网络本期编辑&#xff1a;小艾 发展历程国外1931年&#xff0c;Gwinnett在其专利中提出了一种基于球面并联机构的娱乐装置&#xff1b;并联娱乐装置1940年&#xff0c;Pollard在其专利中提出了一种空间工业并联机…

c++求n次方_课时9一元二次方程及其应用

基础过关1.(2019徐州)方程x2&#xff1d;4的解为(  )A. x1&#xff1d;x2&#xff1d;2 B. x1&#xff1d;2&#xff0c;x2&#xff1d;&#xff0d;2C. x1&#xff1d;x2&#xff1d;&#xff0d;2 D. x1&#xff1d;2&#xff0c;x2&#xff1d;02.(2019兰州…

linux nfs命令,linux命令:NFS服务

NFS服务器端&#xff1a;nfs-utilsnfs服务器启动的进程: nfsd(nfs服务主进程)&#xff0c;mountd(挂载进程)&#xff0c;quotod(磁盘配额进程)nfsd端口&#xff1a;2049/tcp, 2049/udp让mountd和quotod等进程监控在固定端口&#xff0c;编辑配置文件&#xff1a;/etc/sysconfig…

图神经网络快速爆发,最新进展都在这里了

来源&#xff1a;AI科技大本营近年来&#xff0c;图神经网络&#xff08;GNNs&#xff09;发展迅速&#xff0c;最近的会议上发表了大量相关的研究论文。本文作者正在整理一个GNN的简短介绍和最新研究报告的摘要。希望这对任何准备进入该领域或试图赶上最新技术进展的人有所帮助…

为什么linux远程一进入sudo su就卡住_Linux 实战(上)

什么是LinuxLinux有两种含义&#xff1a;一种是 Linus 编写的开源操作系统的内核另一种是广义的操作系统服务器端通常强调稳定性&#xff0c;不需要像客户端那样华丽的图形界面。2. Linux 内核版本和常见发行版内核版本&#xff1a;https://www.kernel.org/内核版本分 主版本号…

JavaScript中的运算符和语句

一、JavaScript的运算符 a、基本的算术运算符&#xff08;、-、*、/、%&#xff09; -、*、/、%运算符会在必要的时候将操作数转换为数字&#xff0c;无法转换成数字的操作数将会转换成NaN,相应的运算结果也是NaN。 JavaScript中所有的数都是浮点型的&#xff0c;所以除法的运算…

linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...

很多刚接触Linux的人都有四大疑问&#xff1a;使用Linux非常困难、在Linux中&#xff0c;您必须使用命令行、Linux很老又丑陋、Linux无法运行计算机游戏&#xff0c;本文为您解析&#xff0c;打消您对Linux的误解。前言对于许多人来说&#xff0c;Linux是一个可怕的操作系统&am…

深度学习未来的三种范式

来源&#xff1a;AI前线作者&#xff1a;Andre Ye译者&#xff1a;平川策划&#xff1a;陈思深度学习是一个广阔的领域&#xff0c;它围绕着一种形态由数百万甚至数十亿个变量决定并不断变化的算法——神经网络。似乎每隔一天就有大量的新方法和新技术被提出来。不过&#xff0…

Nature重磅:软硬分离、图灵完备,清华首次提出“类脑计算完备性”

来源 | 清华大学计算机系校友会北京时间10月14日&#xff0c;清华大学计算机科学与技术系&#xff08;以下简称“计算机系”&#xff09;张悠慧团队、精密仪器系&#xff08;以下简称“精仪系”&#xff09;施路平团队与合作者在《Nature》杂志发文&#xff0c;首次提出“类脑计…

Linux sublime设置中文,CentOS 8.1下Sublime Text 3设置中文与Python环境

Sublime Text是一个跨平台的源代码编辑器&#xff0c;设计简单&#xff0c;速度快&#xff0c;支持许多编程语言和标记语言&#xff0c;你可以使用数千个可用于安装的插件&#xff0c;在RHEL 8/CentOS 8上的Sublime Text 3上解锁更多功能&#xff0c;本文假设你已在CentOS/RHEL…