自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

时间:2022-11-03 11:57:32

开心一刻

  儿子读高中放学回来了,一向不管他学习的我突然来了兴趣,想看看他的学习他的状况

  抄起他的数学习题看了起来,当看到 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的阶乘,那等于多少?

  我:这不是感叹号吗?

自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

写作背景

  关于 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 和 Spring Boot 搭建 SSM

    这样 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,这是一种方式,但我还是想给大家演示一个完整的从无到有的过程

  工程搭建

自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

    方式很多种,我独爱白的像一张纸一样的初始配置

  配置 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.yml

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

  完整工程

​ssm​

  实现效果

自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

总结

  不是说过时的东西不能用,而是不推荐用,效率是一方面,安全也是一方面,保不准过时的内容会在后续哪个版本就直接剔除了,那就是真的不能用了;当下 java web 的热门开发工具就是 IDEA(不仅仅只是java哦),热门框架就是 Spring Boot,当下流行不保证一直流行,我们需要保持一颗学习的心,多关注时下的热门技术。

参考

  ​​SpringBoot入门教程(一)详解intellij idea搭建SpringBoot​​

  ​​Spring boot 入门篇​​