前言
开心一刻
儿子读高中放学回来了, 一向不管他学习的我突然来了兴趣, 想看看他的学习他的状况, 抄起他的数学习题看了起来, 当看到 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = 10! 我当时火冒三丈, 一巴掌就呼过去了, 怒吼道: 你这是怎么读的, 1 乘以 2 乘以 3 乘以...10 怎么等于 10! 旁边的媳妇一平底锅甩我脸上: 不等于 10 的阶乘, 那等于多少? 我: 这不是感叹号吗?
写作背景
关于 ssm 的基础篇, 我一共写了三篇博客:
利用 maven/eclipse 搭建 ssm(spring+spring mvc+mybatis)
搭建 ssm 比较简单, eclipse 配置好 maven, 工程中配置好相关配置文件即可; 但是此种方式已过时, 包括 eclipse,spring4.0.2,ssm 的搭建方式(pom 中配置的依赖太多), 不再推荐此种方式.
关于利用 maven 搭建 ssm 的博客, 我们一起来探讨下问的最多的问题
根据大家搭建 ssm 过程中遇到的问题, 总结出了此篇, 主要是针对数据绑定的问题进行了详细的说明; 内容不过期, 推荐仔细看看.
Spring MVC 的工作原理, 我们来看看其源码实现
由问题: Spring mvc 是何时, 何地, 如何将 Model 中的属性绑定到哪个作用域 引发的 Spring MVC 的工作原理的探索, 随着 Spring 版本的变迁, Spring MVC 或许会有少许的改动, 但单核心不会变, 推荐仔细看看.
近来, 还是陆陆续续收到一些刚入门的小伙伴的求助, 利用 maven/eclipse 搭建 ssm 还是会出现各种各样的问题, 关键是我在帮忙解决的过程中竟然发现我不太会用 eclipse 了, 而且 spring 的版本还是 4, 我就问他们了: 你们怎么还在用 eclipse,spring 的版本为什么那么低? 结果我得到一个统一的回答: 我是参考的你的博客搭建的.
此刻我意识到了这是我的问题: 随着时间的流逝, 我没有及时的更新我的博客 → 利用 maven/eclipse 搭建 ssm(spring+spring mvc+mybatis), 导致很多刚入门的小伙伴看到的是过时的内容, 误人子弟实乃大罪过! 所以我赶紧写了此篇, 指正当前正确的方向. 一段时间后, 此篇博文涉将的内容也会过时, 所以大家最好能自己抓住当下主流的内容.
目前公司用的是 idea + spring boot 实现的工程搭建, 也是当下最流行的方式, 下面我也就演示下如何利用 idea 和 spring boot 搭建 ssm 工程.
IDEA
IDEA 全称 IntelliJ IDEA, 具体它是什么, 有什么用, 怎么用 等等关于 IDEA 的内容, 大家自行去查阅, 我就不做啰嗦了. 可参考: IDEA 使用教程(持续更新, 19 年 6 月 14 号更新)
推荐大家用最新的 IDEA 版本, 有能力的请支持正版
只强调一点: maven 设置
maven 的更多内容大家自行去查阅资料, maven 的安装可参考利用 maven/eclipse 搭建 ssm(spring+spring mvc+mybatis), 推荐用最新的; 安装好 maven 之后, 推荐配置上阿里的镜像, 在 maven 的配置文件 settings.xml 中的 mirrors 节点下新增如下 mirror 节点
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
maven 安装好后, 需要在 idea 中配置好 maven, 配置过程很简单, 如下图所示
这样 idea 集成 maven 就成功了
Spring Boot
关于 Spring Boot 的详细信息, 大家可以去它的官方文档看, 也可以看园子内大佬的博客, 推荐: Spring boot 入门篇
Spring Boot 是由 Pivotal 团队提供的全新框架, 但不是 Spring 的替代品, 而是 Spring 的衍生品, 目的是用来简化新 Spring 应用的初始搭建以及开发过程; 它采用了约定大于配置的做法, 默认配置了很多框架的使用方式, 就像 Maven 整合了所有的 Jar 包, Spring Boot 整合了所有的框架, 同时 Spring Boot 采用 Starters 的方式简化了工程的 maven 依赖配置.
目前 Spring Boot 的最新的发布版本是 2.1.6 , 我们不采用它, 我们用 2.1.0 这个发布了有一段时间的版本来演示
SSM 搭建
我们可以直接下载官网的样例, 然后导入到 idea, 这是一种方式, 但我还是想给大家演示一个完整的从无到有的过程
工程搭建
方式很多种, 我独爱白的像一张纸一样的初始配置
配置 maven 依赖
pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.lee</groupId>
- <artifactId>ssm</artifactId>
- <version>1.0-SNAPSHOT</version>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <encoding>UTF-8</encoding>
- <java.version>1.8</java.version>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
- <pagehelper.version>1.2.5</pagehelper.version>
- <druid.version>1.1.10</druid.version>
- </properties>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.1.0.RELEASE</version>
- </parent>
- <dependencies>
- <!-- web -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-Web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-thymeleaf</artifactId>
- </dependency>
- <!-- mybatis 相关 -->
- <dependency>
- <groupId>com.GitHub.pagehelper</groupId>
- <artifactId>pagehelper-spring-boot-starter</artifactId>
- <version>${pagehelper.version}</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>${druid.version}</version>
- </dependency>
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- </dependency>
- </dependencies>
- </project>
- View Code
工程配置
application.YAML
- server:
- port: 8888
- servlet:
- context-path: /ssm
- spring:
- #连接池配置
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- druid:
- driver-class-name: com.MySQL.cj.jdbc.Driver
- url: jdbc:MySQL://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
- username: root
- password: 123456
- initial-size: 1 #连接池初始大小
- max-active: 20 #连接池中最大的活跃连接数
- min-idle: 1 #连接池中最小的活跃连接数
- max-wait: 60000 #配置获取连接等待超时的时间
- pool-prepared-statements: true #打开 PSCache, 并且指定每个连接上 PSCache 的大小
- max-pool-prepared-statement-per-connection-size: 20
- validation-query: SELECT 1 FROM DUAL
- validation-query-timeout: 30000
- test-on-borrow: false #是否在获得连接后检测其可用性
- test-on-return: false #是否在连接放回连接池后检测其可用性
- test-while-idle: true #是否在连接空闲一段时间后检测其可用性
- #mybatis 配置
- mybatis:
- type-aliases-package: com.entity
- #config-location: classpath:mybatis/mybatis-config.xml
- mapper-locations: classpath:mapper/*.xml
- # pagehelper 配置
- pagehelper:
- helperDialect: MySQL
- #分页合理化, pageNum<=0 则查询第一页的记录; pageNum 大于总页数, 则查询最后一页的记录
- reasonable: true
- supportMethodsArguments: true
- params: count=countSql
- View Code
完整工程
java 文件夹下的内容, 包括 conroller,service,mapper,dao 以及 SsmApplication 就不逐一展示了, 更多详细代码请看: ssm
实现效果
总结
不是说过时的东西不能用, 而是不推荐用, 效率是一方面, 安全也是一方面, 保不准过时的内容会在后续哪个版本就直接剔除了, 那就是真的不能用了; 当下 java Web 的热门开发工具就是 IDEA(不仅仅只是 java 哦), 热门框架就是 Spring Boot, 当下流行不保证一直流行, 我们需要保持一颗学习的心, 多关注时下的热门技术.
参考
SpringBoot 入门教程 (一) 详解 intellij idea 搭建 SpringBoot
Spring boot 入门篇
来源: https://www.cnblogs.com/youzhibing/p/11181920.html